2017-05-08 68 views
1

我有一個System.Data.Entity.Dbset由EntityFramework的DataContext提供給我。 我有一個ObservableCollection AllTaxes在我的ViewModel 我只是想從System.Data.Entity.Dbset中刪除所有從AllTaxes中刪除的條目,基於一個名爲「TaxCode」的使用Linq的公共屬性。NOT IN語法的使用LINQ

我對Linq不太瞭解。我用下面的Linq找出從ViewModel中刪除但仍存在於Model中的所有稅碼。

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

然而,這是給我的例外: -

無法創建Hexa.Models.DM_Tax類型的恆定值。在此上下文中僅支持 基元類型或枚舉類型。

簡而言之,我如何將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 ..它工作.. :-)。 –

+0

你是我們的;) – octavioccl