【发布时间】:2011-08-18 12:35:22
【问题描述】:
我是 nhibernate 的新手,我试图在数据库上创建一个查询,在项目和类别之间有许多链接。
我有一个包含 3 个表的数据库:项目、类别和一个查找表 categoryitem,如下所示:
categorys - 主键 categoryId
items - 主键 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>;
}
我只有类别和项目的业务对象。 如何创建存储库方法来查找特定类别的项目?
【问题讨论】:
标签: nhibernate criteria