私は次のオブジェクトを持っています
public class Document
{
public Guid Id { get; set; }
public ISet<Tag> Tags { get; set;}
...
}
public class Tag
{
public Guid Id { get; set;}
}
これは多対多の関係ですが、中間の DocumentTag オブジェクトがありません。QueryOver 構文を使用して、すべてのタグのセットを持つすべてのドキュメントを返そうとしています。これが私がこれまでに持っているものです。
Guid[] tagsThatMustMatch = ...;
var result = Session.QueryOver<Document>()
.WithSubquery
.WhereExists(QueryOver.Of<Tag>().Where(t => tagsThatMustMatch.Contains(t.Id))
.List()
要件を表現するのに苦労しています。一致する必要があるタグごとに WhereExists を持つクエリを動的に構築する必要があることを理解しています。これらの WhereExists は論理積する必要があります。私が抱えているもう 1 つの問題は、WhereExists メソッドが DetachedQuery を取り込む必要があることです。しかし、このドキュメントにすべてのタグが含まれているわけではないタグだけを見るように制約する方法はありません。
このようなことができる方法を確認できる例はありますか?