У меня есть запрос 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 к Entities «Невозможно создать contstant значение типа„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);
но это будет производить 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