1

エンティティフレームワーク4とlinq/lamda式を使用しています。確かに簡単ですが、配列を使用してコレクションをクエリしようとしていますが、すべての配列値を含むレコードを取得しています。

基本的に私がしていることはこれです

var records = collection.where(x.classifications.Any(y=> Array.Contains(y.ClassificationID))).ToList()

これは、配列値のいずれかを含むレコードを返すという意味で機能しますが、配列内のすべての値を含むレコードのみを取得するにはどうすればよいですか。

それが理にかなっていることを願っています

編集:

以下のコメントを回答としてマークしているのは、クエリでALLを使用して機能させる必要があったためですが、クエリを少し書き直す必要もありました。これは私が最終的に持っていたものです...

  var records = collection.Where(x=> Array.All(c=> x.Classifications.Select(l=>l.ClassificationID).Contains(c)))
4

1 に答える 1

0

All代わりに使用するのはAnyどうですか?

var records = collection.Where(x => x.classifications.All(y => Array.Contains(y.ClassificationID)))
                        .ToList()
于 2013-02-21T13:07:48.103 に答える