0
我是nhibernate的新手,试图在数据库上创建一个查询项目和类别之间的manytomany链接。nhibernate manytomany查询
我有3个表数据库:项目,分类和查找表categoryitem这样的:
的categorys - 主键的categoryId
项目 - 主键ITEMID
categoryItem - categoryId列和itemId列
我想查询返回的项目特定类别,并已尝试这样做,认为我沿着正确的线路是:
public IList<Item> GetItemsForCategory(Category category)
{
//detached criteria
DetachedCriteria itemIdsCriteria = DetachedCriteria.For(typeof(Category))
.SetProjection(Projections.Distinct(Projections.Property("Item.Id")))
.Add(Restrictions.Eq("Category.Id", category.Id));
criteria.Add(Subqueries.PropertyIn("Id", itemIdsCriteria));
return criteria.List<Item>() as List<Item>;
}
我只有类别和项目的业务对象。 我如何创建一个存储库方法来查找特定类别的项目?
是的,它就是这样。我会尝试。经过一些搜索,我发现这似乎也产生了我想要的结果,但不知道它的最佳实践var itemIdsCriteria = DetachedCriteria.For(typeof(Item))。CreateCriteria(“Categories”)。SetProjection(Projections.Distinct(Projections。 Property(“Id”)))。Add(Restrictions.Eq(“Id”,category.Id)); //附加主标准,像这样criteria.Add(Subqueries.PropertyIn(“Id”,itemIdsCriteria)); – user900566