這裏是我的相關類:NHibernate的查詢匹配的所有標籤
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的查詢,返回所有
Item
S作所有的Tag
s的Name
小號匹配在給定列表中的所有字符串?
這是函數簽名:
IList<Item> GetItemsWithTags(IList<string> tagNames);
我需要的東西,如:提前
from Item item
where !tagsNames.Except(
from item.Tags select item.Tags.Name
).Any()
select item
感謝您的幫助。
對不起,我誤解了你的問題,並沒有意識到你需要*全部*標籤來匹配。我知道如何用直接的SQL來做到這一點,但我不得不考慮如何使用NHibernate做到這一點......我在此期間刪除了我的不正確答案。 – 2009-06-04 21:09:34