1
我有一个linq实体查询,我遇到了麻烦。只有基元类型或枚举类型在这种情况下支持(在Linq Contains方法中)
var query = (from q in dc.Table1
where (from a in dc.Table2 select a.TypeID).Contains(q.TypeID)
select q);
此查询在Linq to SQL中有效。它应该产生一个SQL查询是这样的:
select * from Table1 where TypeID in (select TypeID from Table2)
抛出的错误提示,LINQ到实体是“无法创建类型的contstant值‘表2’
我能做到以下几点:
var typelist = (from q in dc.Table2 select q.TypeID).ToList();
var query = (from q in dc.Table1
where typelist.Contains(q.TypeID)
select q);
但这样会产生2个的SQL查询,而不是1:
select distinct TypeID from Table2;
select * from Table1 where TypeID in (1,2,3,4,5,6..... etc......);
任何想法
谢谢您的回答。你是对的。我意识到我的问题不在于实体框架。我使用BreezeJS和Breeze EFContextProvider似乎是真正的问题。 – Nick