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