NHibernateのペタポコローディングメカニズムを理解するのに苦労しています。実際、私は両方がクエリでどのように動作するかを比較するためのテストを行いました。
私のクラスは次のとおりです。
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.LoadNHibernateでaを実行するDoSomeOtherWorkと、呼び出されないことがわかりましたが、PetaPocoでは、またはUserなどの読み込みからクエリを実行すると、呼び出されていることがわかります。Connection.db.Fetch<UserTest>(...)Connection.db.Query<UserTest>(...)DoSomeOtherWork
どうしてこんなことに?
DoSomeOherWorkPetaPocoを使用するときに、NHibernateと同じ動作をするように呼び出すことを回避する方法はありますか?私はt want to usePetaPocoを使用していません。CustomerID`を無視しas I need to get and set theます。