Linq-to-SQL EntitySet Is Not IQueryable - любые обходные пути?

Когда вы запрашиваете свойство EntitySet для объекта модели в Linq-to-SQL, он возвращает все строки из набора сущностей и выполняет дальнейшие запросы на стороне клиента.

Это подтверждается в нескольких местах в Интернете, и я сам наблюдал за этим поведением. EntitySet не реализует IQueryable.

Мне пришлось преобразовать код вроде:

var myChild = ... ;
// Where clause performed client-side.
var query = myChild.Parents().Where(...) ;  

в:

var myChild = ... ;
// Where clause performed in DB and only minimal set of rows returned.
var query = MyDataContext.Parents().Where(p => p.Child() == myChild) ;  

Кто-нибудь знает лучшее решение?

Второй вопрос: исправлено ли это в Entity Framework?

8
задан Pete 2 March 2011 в 20:59
поделиться