0

異なるプロパティを持つクラスがあり、それぞれが異なる複合型 (コンポーネント) にマップされています。問題は、これらのプロパティの 1 つにアクセスしようとすると、両方のプロパティで遅延ロードが有効になっているにもかかわらず、NHibernate が他のコンポーネントの列もフェッチすることです。

var user = _session.Load<User>(userId);
user.PasswordInfo.Password; /* This causes to load other properties from another
       component property, e.g. user.MemebershipInfo.IsOnline */

私は何が欠けていますか?

4

1 に答える 1

2

これは予期される動作です。

遅延プロパティは一度にすべて読み込まれます。この機能の背後にある考え方は、ほとんどのワークフローで使用されない BLOB プロパティ、またはプロパティのグループに対して主に使用するということです。

それは良いことです。それ以外の場合、複数の遅延プロパティを持つクラスは、それらのプロパティの値を表示するためだけに多くの DB 呼び出しを取得します。

于 2012-09-22T14:10:27.847 に答える