2017-05-08 6 views
1

私はSystem.Data.Entity.DbsetをEntityFrameworkのDataContextから提供しています。 私はViewModelにObservableCollection AllTaxesを持っています Linqを使って "TaxCode"という共通のプロパティに基づいてAllTaxesから削除されたSystem.Data.Entity.Dbsetからすべてのエントリを単に削除したいだけです。LINQ NOT IN使用の構文

Linqではあまりよくありません。ViewModelから削除されたが、Modelにはまだ存在するすべてのTaxCodeを見つけるために、次のLinqを使用しました。

タイプHexa.Models.DM_Taxの一定の値を作成できません - :

var List = Hexa_entity.hexa_tax.Where(Left => !AllTaxes.Any(Right => Right.TaxCode == Left.TaxCode)); 

しかし、これは私に例外を与えています。このコンテキストでは、 プリミティブ型または列挙型のみがサポートされています。

簡単に言えば、間にSQLクエリをlinqに変換するにはどうすればよいですか?その問題は、次のことを試して固定するために

List<ClassTest> Lst = 
    select * from List1<ClassTest>() 
    where id not in (select id from List2<ClassTest>()) 
    .ToList<ClassTest>(); 
+0

'TaxCode' という名前のプロパティの種類は何ですか? – sachin

答えて

3

var AllTaxesCodes=AllTaxes.Select(e=>e.TaxCode);//Use a collection of primitive type 
var List = Hexa_entity.hexa_tax.Where(Left => !AllTaxesCodes.Contains(Left.TaxCode)); 
+0

tx octavioccl..It worked .. :-)。 –

+0

あなたはwecomeです;) – octavioccl