2014-02-04 6 views
1

Учитывая следующие классы:Наследование и жадная загрузка

public class Parent 
{ 
} 

public class Child1 : Parent 
{ 
    public Other other { get; set; } 
} 

public class Child2 : Parent 
{ 
} 

public class Other 
{ 
} 

Есть ли способ я могу указать в запросе Родители, что я хочу охотно принести (т.е. объединение) в Другие, которые связаны с Child1 (проблема в том, что нет Другие на уровне Родитель, который является типом, который я запрашиваю)?

ответ

0

Попробуйте настроить стратегию Fetch на «Присоединиться» к этому столбцу в отображении для Child1. В конфигурации NHibernate xml добавьте fetch="join" к вашему узлу set. В Fluent NHibernate добавьте .Fetch.Join() в конец вашего звонка на «Ссылки» (что-то строка References(x => x.Other)) в Child1Map.cs.

Это может быть то, что вы ожидали от lazy="false" или .Not.LazyLoad(), но отключение ленивой загрузки не делает то, что вы ожидаете. См. Сообщение Айенде здесь для деталей: http://ayende.com/blog/4573/nhibernate-is-lazy-just-live-with-it

+0

Спасибо, но я специально хочу сделать это в запросе, так как я не всегда хочу, чтобы он получал удовольствие. Часто можно запрограммировать выбор в запросе, где он не существует в сопоставлении (хотя я понимаю, что обратное не поддерживается), и вот что я хотел бы сделать здесь. – Michael

Смежные вопросы