Глупый вопрос nHibernate noob, но я не могу найти ответ нигде ...Соответствует выражениям nHibernate для вложенных таблиц?
У меня есть «товарный» класс, успешно сопоставленный с таблицей продуктов и классом «sku». Sku - дочерний объект «продукта», а две таблицы в БД связаны первичным ключом.
Пока все основные работы nHibernate работают - я могу успешно запускать CRUD-команды против базы данных. Я могу сделать запросы на основе выражений успешно, как и в ...
Dim results As ArrayList = session.CreateCriteria(Of DataTransferObjects.Product) _
.Add(Expression.Like("Name", nameSearchString)) _
.List()
.. И результат список объектов продукта, которые успешно выставляют ожидаемые дочерние объекты СКА. Однако, если я пытаюсь выше код поиска на имена полей из таблицы Sku, NHibernate выдает ошибку:
Dim results As ArrayList = session.CreateCriteria(Of DataTransferObjects.Product) _
.Add(Expression.Like("SkuCode", skuSearchString)) _
.List()
Результаты в «не может разрешить свойство: SkuCode из: Продукт»
Это работает:
Dim results As ArrayList = session.CreateCriteria(Of DataTransferObjects.Sku _
.Add(Expression.Like("SkuCode", skuSearchString)) _
.List()
Но, неудивительно, что он возвращает объекты Sku, тогда как мне нужен объект продукта.
Это также составляет:
Dim results As ArrayList = session.CreateCriteria(Of DataTransferObjects.Product) _
.Add(Expression.Like("Name", nameSearchString)) _
.CreateCriteria("Skus").Add(Expression.Like("SkuCode", skuSearchStrung)) _
.List()
Но он не возвращает ничего, даже если первое выражение справедливо
Как я могу запустить Expression.Like против полей в таблице Sku?