関連するクラスは次のとおりです。
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 です。
質問は次のとおりです。
文字列のリストが与えられた場合、指定されたリスト内のすべての文字列に一致するs を持つすべてのs
Item
を持つすべての sを返す NHibernate クエリを作成するにはどうすればよいですか?Tag
Name
これは関数のシグネチャです:
IList<Item> GetItemsWithTags(IList<string> tagNames);
次のようなものが必要です:
from Item item
where !tagsNames.Except(
from item.Tags select item.Tags.Name
).Any()
select item
助けてくれてありがとう。