2

エンティティFと多対多の関係にあるエンティティEを取得しました。次に、Fの特定のインスタンスに関連するEのすべてのインスタンスをカウントしたいと思います。

古き良きHQL時代には、次のクエリを使用しました。

select count(*) from E e inner join e.fCollection f where f.id = :id

:idは、関連するFインスタンスの主キーです。e.fCollectionは、すべてのFインスタンスを保持するコレクションであり、eはに関連しています。

NH-to-LINQでは、fCollectionに参加することはできないようです。

何か案は?:) 前もって感謝します

4

1 に答える 1

2

これを試して:

e.Count(x => x.fCollection.Any(y => y.id == id));

eこれは、指定された ID を持つコレクション項目が少なくとも 1 つあるの数を返します。
指定した ID を持つコレクション アイテムの数が必要な場合は、次を使用します。

e.fCollection.Count(x => x.id == id);
于 2012-08-31T07:46:10.137 に答える