2012-04-23 18 views
0

Linqクエリで2つのEntityCollectionを比較できますか?LinqToEntityクエリでEntityCollection <Class>を比較

私はこの方法を試してみました:

idListとIDが両方EntityCollection

ですが、私は非サポート例外を得た

from t in _bdd.Table 
where (idList).All(id=> t.ids.Contains(id)) 
         select i).FirstOrDefault() 

"Unable to create a constant value of type (ID) Only primitive types ('such as Int32, String, and Guid') are supported in this context" 

は二つのリストを比較する方法はありませんい単一のLinqクエリですか?

答えて

0

最初に、ローカルコレクション(idList)をwhere句のソースとして使用すると例外が発生します。その代わりに、右側に表示されるように複数の辺を切り替えるようにしてください。これは、いくつかのLINQメソッドの中にある可能性があります。また

where t.ids.Count() == idList.Count() && t.ids.All(ids => idList.Contains(id)) 

部分は、それが選択したどのような明確ではない「私が選ぶ」:

私はクエリはあなたが望む結果を得るでしょうこれはどこだと思います。コードスニペットにiという名前の変数はありません。

+0

これと同じ例外です。明らかに、Allパラメータでもローカルコレクションは使用できません。 私は結果に使用すると(つまり、EFが私にローカルの行を与えた後で)、それは機能します。私はこの方法でプローブを使うでしょう。ありがとうございました! :) –