привет гюс
Пишу вот так .... У меня проблема :-)
Вот моя ситуация:
Таблица A (Категория) {ID, Список, Список}
Таблица B (CategoryLanguage) {IDCategory, IDLanguage, Описание}
Таблица C (Подкатегория) {IDCategory, ID, Список}
Таблица D (SubCategoryLanguage) {IDSubCategory, IDLanguage, Описание}
Вот мой код QueryOver (с псевдонимами)
Category Cat = null;
CategoryLanguage catLang = null;
SubCategory subCat = null;
SubCategoryLanguage subCatLang = null;
var qOver = _HibSession.QueryOver<Category>(() => Cat)
.Left.JoinAlias(() => Cat.Languages, () => catLang)
.Where(() => catLang.IDLanguage == IDLanguage)
.Left.JoinAlias(() => Cat.SubCategories, () => subCat)
.Left.JoinAlias(() => subCat.Languages, () => subCatLang)
.Where(() => subCatLang.IDLanguage == IDLanguage)
.OrderBy(() => Cat.ID).Asc
.List<Category>();
С помощью этого запроса NHibernate не фильтрует поля «Языки», и когда я зацикливаюсь на подкатегориях (чтобы вывести на мой взгляд дерево Category => SubCategory), он запускает запрос для каждой подкатегории !! (Я видел это с помощью NHibernate Profiler)
Я не использую отложенную загрузку, но использую JoinAlias. Я ожидал увидеть все данные объединенными.
Кто-нибудь может мне помочь?
Спасибо!