1

私は、カスタム作成されたアプリ エンジンを使用して実装されたシステムで EF を NHibernate に置き換えるための初期の調査を行っています。

クライアントは Person などのエンティティを作成し、ユーザーからプロパティ値を取得してサーバーに送信します。サーバーでcontext.CreateObject<Person>()は、Person のプロキシを取得していました。次に、プロパティ値がプロキシに適用され、遅延読み込みを使用して関連オブジェクトにアクセスできました。たとえば、人がプロパティMajorIDとナビゲーション プロパティを持っている場合Major、 に設定MajorID5、式がアクセスするMajor場合、正しいものMajorがこのフィールドに遅延ロードされます。更新についても同様のプロセスが発生します。

NHibernate にはCreateOject<>()メソッドがないため、オブジェクトはプロキシされず、遅延読み込みがありません。また、更新プログラムで、MajorID を変更してから Major にアクセスすると、依然として古い間違った Major を指しています。

私は NHibernate を初めて使用しますが、このシナリオで EF のように動作させることはできますか?

ありがとう

4

2 に答える 2

1

session.Get<>ロードしたい人のIDを渡すことで、使用するwatを実現できると思います。id 部分については、通常、関連付けを操作するときに直接操作しないでください。次のようなことを試してみませんか。

var p = session.Get<Person>(personId);
p.Major = session.Get<Majors>(mayorId);
session.Update(p);
于 2012-08-07T11:35:08.517 に答える