私は、次のSQL文を変換し、トラブルを抱えているLINQツーエンティティ:LINQツーエンティティ
LINQでSELECT l.*
FROM locations l
WHERE l.id NOT IN (/* array of ids */)
、私のようなものを見たいのですが(myCollectionが除外される項目の一般的なリストです):
IQueryable<Location> locationQuery = from l in DataContext.Location
where !myCollection.Contains(l)
select l;
しかし、それは動作しませんので、入っては(私はそれを見るように)LINQツーエンティティでは使用できません。私の最高の/最も近いLINQの試みで、私は場所の私のコレクション(List)を持っていると私は、データベースからすべての既存の場所を取得するのDataContextを持っている:
明らかList<Location> Route = new List<Location>();
// Some code to add Location entities from the DB to the Route collection
var innerQuery = from p in Route
select p.ID;
IQueryable<Location> locationQuery = from l in DataContext.Location
where !((innerQuery).Any(k => k == l.ID))
select l;
私はからすべての場所を取得したいです私のローカルコレクションにないDB。ただし、コードではNotSupportedExceptionが発生します。
'Closure type'の定数値を作成できません。このコンテキストでは、プリミティブ型( 'Int32、String、およびGuid'など)のみがサポートされています。
私はそれを別のアプローチで使いこなしましたが、うまく動作しません。今、LINQ-to-entitiesは、上記のエラーを説明する上位レベルの比較(オブジェクトレベル)ができないことを読んでいます。
私の実際の質問は、LINQでSQLで簡単に何ができるのですか?私は、ローカル(非DB)コレクションに存在するエンティティを除いて、DBから複数のエンティティを選択したいだけです。
ようこそ、私はここで同様の変換の問題を提起したLINQからSQLへの機能の半分ではありません... –
の代替。 http://stackoverflow.com/questions/4093592/how-to-lookup-entities-in-entityframework-4-by-a-finder-interface-works-in-linq私はまだ解決の運がなかった。 LinqToSqlではEFではできないことがたくさんあるようです。それは非常に迷惑で/失望しています。あなたの質問は少し異なりますが、最終結果は似ています。私はあなたが私より多くの成功を収めたことを願っています。 –