У меня есть тип Type1 со свойством Type2s, состоящим из List<Type2>
. Я настроил отображение NHibernate для свойства следующим образом:
[Map(0, Table = "Type2s", Schema = "MySchema", Cascade = CascadeStyle.All, Lazy = true, Inverse = true)]
[Key(1, Column = "Type1Id")]
[OneToMany(2, Class = "Type2, MyNamespace")]
Какая разница в поведении между этими двумя критериями для поиска экземпляров типа 1:
var criteria1 = DetachedCriteria.For<MyType1>();
var criteria2 = DetachedCriteria.For<MyType1>().SetFetchMode("Type2s", FetchMode.Join);
Когда я вызываю .List для исполняемых критериев из этих критериев, предположительно SQL для извлечения Type2, связанных с каждым экземпляром Type1, не запускается, пока я не попытаюсь получить доступ к свойству, поскольку свойство помечено как Lazy. Это правильное предположение?
Если я хочу форсировать оценку свойства Lazy, как этого лучше всего достичь?