Механизм загрузки NHibernate vs petapoco
Мне трудно понять NHibernate механизм загрузки petapoco. На самом деле я сделал тест, чтобы сравнить, как оба ведут себя при запросе.
Мой класс выглядит следующим образом:
UserTest.cs
со следующими свойствами:
private string name;
private int id;
private int customerId;
public int ID
{
get { return id; }
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public int? CustomerID
{
get { return customerId; }
set
{
if (value != customerId)
{
customerId = value;
if (this.ID > 0)
{
DoSomeOtherWork();
}
}
}
}
Когда я делаю User.Load
в NHibernate, я заметил, что DoSomeOtherWork
никогда не вызывается, тогда как в PetaPoco, когда я делаю запрос из loading User
, такой как Connection.db.Fetch<UserTest>(...)
или Connection.db.Query<UserTest>(...)
, я вижу, что DoSomeOtherWork
вызывается.
Почему это ну и что?
Есть ли способ избежать вызова DoSomeOherWork
при использовании PetaPoco таким образом, что он имеет то же поведение, что и NHibernate? Я неt want to use
PetaPoco.Игнорироватьas I need to get and set the
CustomerID`.