問題が発生しているエンティティクエリへのlinqがあります。
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 to Entities が「型 "Table2" の定数値を作成できません」であることを示唆しています
私は次のことができます:
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);
ただし、1 つではなく 2 つの SQL クエリが生成されます。
select distinct TypeID from Table2;
select * from Table1 where TypeID in (1,2,3,4,5,6..... etc......);
何か案は