nhibernate: как запросить коллекцию внутри родительского объекта - PullRequest
0 голосов
/ 08 июня 2010

У меня есть следующий метод. Это прекрасно работает, если я удаляю следующую строку

.Add(Restrictions.Eq("Product.IsPopItem", true))

Сообщение об ошибке

не удалось разрешить свойство: Product.IsPopItem из: EStore.Domain.Model.ProductCategory

Я уверен, что «Product.IsPopItem» отображается правильно, так как я могу вызвать это свойство. Нужно ли добавить несколько критериев?

 public ICollection<ProductCategory> FindByCompanyIdAndCategoryIdAndIsPop(int companyId, int id)
    {
        var products = _session
            .CreateCriteria(typeof(ProductCategory))
            .Add(Restrictions.Eq("CompanyId", companyId))
            .Add(Restrictions.Eq("CategoryId", id))
            .Add(Restrictions.Eq("Product.IsPopItem", true))
            .List<ProductCategory>();
        return products;
    }

1 Ответ

4 голосов
/ 08 июня 2010

Да, вам нужно добавить .CreateAleas

 .CreateAlias("Product", "product", JoinType.InnerJoin)

пожалуйста, измените JoinType по своему усмотрению и используйте псевдоним "product" вместо имени свойства "Product"

итоговый должен быть что-то вроде:

.CreateCriteria(typeof(ProductCategory))
        .CreateAlias("Product", "product", JoinType.InnerJoin)
        .Add(Restrictions.Eq("CompanyId", companyId))
        .Add(Restrictions.Eq("CategoryId", id))
        .Add(Restrictions.Eq("product.IsPopItem", true))
        .List<ProductCategory>());
        return products;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...