1
我的对象模型如下:为NHibernate的标准API许多一对多
项目有很多标签,一个标签可以同时属于多个项目
我想使用标准的执行下面的查询。
SELECT * FROM Item item
WHERE item.Id in (Select it.ItemId from dbo.ItemToTags it where it.Tag_id = 'ONE')
AND item.Id in (Select it.ItemId from dbo.ItemToTags it where it.Tag_id = 'TWO')
含义我想给可能的标签的集合,然后提供具有所有这些标签的所有内容:
我尝试以下,但我得到的不是结果:
CreateCriteria<Item>().CreateAlias("Tags", "Tags");
if (AndQuery) {
foreach(var tag in Tags)
{
criteria.Add(Subqueries.PropertyEq("Tags.Id", DetachedCriteria.For<Tag>().Add(Restrictions.Eq("Id", tag)) .SetProjection(Projections.Property("Id"))));
}
}
感谢您的回答,但那会给我OR关系。我正在寻找一个安慰!这就是为什么我的查询包含两个子查询,而不是! – Patrick 2010-10-05 13:02:13