Когда я пытаюсь запустить эту логику, NHibernate возвращается с ошибкой, заявляющей, что не имеет ссылки на «Сайт».
IQueryable<Product> query = this.RetrieveAll();
query = query.Where(x => x.Status == Product.Statuses.Approved || x.SiteProduct.Where(y => y.Site.ID == siteID).Count() > 0);
Немного фона.
Продукт имеет карту «один ко многим» на сайте ProductProduct
SiteProduct имеет карту «один ко многим» на сайт
Даже у более простой версии есть проблемы, в которых говорится, что она не имеет ссылки на ID:
IQueryable<Product> query = this.RetrieveAll();
query = query.Where(x => x.Status == Product.Statuses.Approved || x.SiteProduct.Where(y => y.ID > 0).Count() > 0);
Есть ли у NHibernate проблемы с вложением операторов "Где" внутри себя?
Что касается отображений таблиц, то они кажутся правильными, поскольку я могу пройти весь путь вниз и захватить отдельные записи внизу с помощью отложенной загрузки. Добавление, получение и удаление записей все работает отлично. У меня просто проблемы с вложением моего запроса Linq.