FirstOrDefault () прерывает FetchType = join с Linq для NHibernate

If i do

Session.Linq<MyClass>().Where(x => x.Id = someId).FirstOrDefault();

где MyClass имеет набор нетерпеливо загруженных дочерних объектов, FirstOrDefault(), кажется, препятствует этому, добавляя TOP 1 к SQL.

Это просто ошибка (функция?) В Linq2NH (которая, как я понимаю, переписывается) или мне что-то не хватает?

Есть ли предпочтительная альтернатива, которая работает должным образом?

Спасибо


person Andrew Bullock    schedule 18.05.2009    source источник


Ответы (1)


Похоже на ошибку, на мой взгляд, FirstOrDefault - это довольно хорошо определенный оператор Linq, и он не имеет ничего общего с нетерпеливой / ленивой загрузкой, поэтому он не должен его нарушать.

Думаю, таких нюансов очень много, из-за которых библиотека не готова к производству. Я предлагаю сообщить об ошибке разработчикам.

На мой взгляд, возврат к DetachedCriteria (или HQL) в этом случае - единственный вариант.

person bbmud    schedule 18.05.2009
comment
Это ошибка, и это также помогает ее объяснить: ayende.com/Blog / archive / 2006/05/02 / - person Andrew Bullock; 16.07.2010