2012-02-03 4 views
0

У меня есть 3 класса, Addin, Application и Database. Каждое приложение может иметь много приложений, и каждое приложение имеет только 1 базу данных. Я хочу получить 1 addin и получить все приложения с их базами данных.Как получить объект из коллекции?

< Addin -> Применение = 1: м
Применение < -> База данных = 1: 1

Этот запрос только извлекает приложения. Как извлечь базу данных:

var result session.CreateCriteria<Addin>() 
      .SetFetchMode("applications", FetchMode.Eager) 
      .Future<Addin>(); 

    result.ToList(); 
+0

Если критерии не работают по-разному в Hibernate и NHibernate, вы должны быть в состоянии SetFetchMode («База данных», FetchMode.Eager) на имущество тоже. –

+0

Он не работает в NHibernate. – mynkow

+0

Ах, я неправильно понял ваши ассоциации, думал, что база данных была собственностью Addin. –

ответ

0

Попробуйте использовать присоединяется или вы можете изменить параметры отображения для загрузки базы данных вместе с приложением (я полагаю, что в модели у вас есть база данных, как свойство Application)

Это будет выглядеть так. как

session.QueryOver<Addin>() 
       .JoinAlias(x => x.Database,() => database) 
       .ToList(); 
+0

У меня нет свойств, кроме полей. Addin не знает о базе данных. – mynkow

+0

Попробуйте это: Я не уверен, о синтаксисе (ни один редактор не открыт) 'сессии .CreateCriteria () .CreateAlias ​​("Приложения", "Приложения") .CreateAlias ​​("apps.Database" , "db") .SetFetchMode ("applications", FetchMode.Join) .SetFetchMode ("apps.Database", FetchMode.Join) ' –

+0

Я пробовал это раньше сегодня, и он говорит, что app prop не существует :( – mynkow

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