2017-05-08 45 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