【发布时间】:2010-10-31 05:49:56
【问题描述】:
这是我的相关课程:
public class Item {
public virtual int Id { get; protected set; }
public virtual IList<Tag> Tags { get; set; }
}
public class Tags {
public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
public virtual IList<Item> Items { get; set; }
}
这些映射与多对多关联。中间表名为 ItemsToTags。
问题来了:
给定一个字符串列表,我如何创建一个 NHibernate 查询来返回所有
Tags 和Names 与给定列表中的所有字符串匹配的所有Items?
这是函数签名:
IList<Item> GetItemsWithTags(IList<string> tagNames);
我需要类似的东西:
from Item item
where !tagsNames.Except(
from item.Tags select item.Tags.Name
).Any()
select item
提前感谢您的帮助。
【问题讨论】:
-
对不起,我误读了你的问题,没有意识到你需要 all 标签来匹配。我知道如何使用直接 SQL 来做到这一点,但我必须考虑如何使用 NHibernate 来做到这一点......同时我已经删除了我的错误答案。
标签: nhibernate tags hql criteria