C# 无法创建“Closure type”类型的常量值

C# 无法创建“Closure type”类型的常量值,c#,linq-to-entities,C#,Linq To Entities,这是我的linq到实体查询,我得到了这个错误 无法创建“Closure type”类型的常量值。在此上下文中仅支持基本类型“如Int32、String和Guid”。 有人知道如何修复它或解决方法吗 另外,我使用的是Linq到实体,而不是Linq到SQL List<int> listint List<int> listintTwo return (from oa in _entity.TableOne join cc in _entity.Tab

这是我的linq到实体查询,我得到了这个错误

无法创建“Closure type”类型的常量值。在此上下文中仅支持基本类型“如Int32、String和Guid”。

有人知道如何修复它或解决方法吗

另外,我使用的是Linq到实体,而不是Linq到SQL

List<int> listint
List<int> listintTwo

  return (from oa in _entity.TableOne
          join cc in _entity.TableTwo on oa.TableSix.ColumnOne equals cc.TableSix.ColumnOne
          join os in _entity.TableThree on oa.TableThree.ColumnTwo equals os.ColumnTwo
          join cs in _entity.TableTwotatus on cc.TableTwotatus.ColumnThree equals cs.ColumnThree
          join app in _entity.TableFour on cc.TableFour.ColumnFour equals app.ColumnFour
          join cl in _entity.TableFive on app.TableFive.ColumnFive equals cl.ColumnFive
          where listint.Any(x =>x == cc.TableTwotatus.ColumnThree)
          && listintTwo.Any(x => x == os.ColumnTwo) && cc.TableSix.ColumnOne == ColumnOne 
          select new TableFive {ColumnFive = cl.ColumnFive, CompanyName = cl.CompanyName}).ToList();

尝试将您的呼叫更改为任何。。。包含


我敢肯定,您从充当闭包的lambda表达式中引用连接实体时遇到问题。

尝试将调用更改为任何。。。包含


我敢肯定,您从充当闭包的lambda表达式中引用连接实体时遇到问题。

您无法查询具有复杂类型的实体。因此,首先从EF中获得结果,然后与您的复杂类型联接

List<int> listint
List<int> listintTwo

return (from oa in _entity.TableOne
      join cc in _entity.TableTwo on oa.TableSix.ColumnOne equals cc.TableSix.ColumnOne
      join os in _entity.TableThree on oa.TableThree.ColumnTwo equals os.ColumnTwo
      join cs in _entity.TableTwotatus on cc.TableTwotatus.ColumnThree equals cs.ColumnThree
      join app in _entity.TableFour on cc.TableFour.ColumnFour equals app.ColumnFour
      join cl in _entity.TableFive on app.TableFive.ColumnFive equals cl.ColumnFive).ToList().
      where listint.Any(x =>x == cc.TableTwotatus.ColumnThree)
      && listintTwo.Any(x => x == os.ColumnTwo) && cc.TableSix.ColumnOne == ColumnOne 
      select new TableFive {ColumnFive = cl.ColumnFive, CompanyName = cl.CompanyName}).ToList();</pre>

不能查询具有复杂类型的实体。因此,首先从EF中获得结果,然后与您的复杂类型联接

List<int> listint
List<int> listintTwo

return (from oa in _entity.TableOne
      join cc in _entity.TableTwo on oa.TableSix.ColumnOne equals cc.TableSix.ColumnOne
      join os in _entity.TableThree on oa.TableThree.ColumnTwo equals os.ColumnTwo
      join cs in _entity.TableTwotatus on cc.TableTwotatus.ColumnThree equals cs.ColumnThree
      join app in _entity.TableFour on cc.TableFour.ColumnFour equals app.ColumnFour
      join cl in _entity.TableFive on app.TableFive.ColumnFive equals cl.ColumnFive).ToList().
      where listint.Any(x =>x == cc.TableTwotatus.ColumnThree)
      && listintTwo.Any(x => x == os.ColumnTwo) && cc.TableSix.ColumnOne == ColumnOne 
      select new TableFive {ColumnFive = cl.ColumnFive, CompanyName = cl.CompanyName}).ToList();</pre>