NHibernateのデフォルト設定は遅延ロード 'on'です。エンティティ(Student)とエンティティ内に含まれるコレクション(Comments)に対して、コードごとのマッピングを使用して遅延ロードをオフに切り替えました。しかし、SQL-Profilerの使用を含むテストでは、エンティティがSession.Get()を介してアクセスされたときにデータベースからコレクションをロードしないことが示されています。 Dbから実体(生徒)を取得するための「選択」のみが表示されます。コレクションテーブル(コメント)に「結合」または「選択」しません。何か不足していますか?テストNHibernateでレイジーローディングをオフにすることはできません
public class Student : Contact
{
public virtual DateTime? EnrollmentDate { get; set; }
public virtual IList<string> Comments { get; set; }
}
:
public void Get_TestToCheckIfLazyLoadingIsTurnedOff()
{
using (var session = SessionFactory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
var student = session.Get<Student>(2);
transaction.Commit();
}
}
}
はい、それは、データベースにエンティティがありません。完全に別の方法で動作します。 – Len