Методы построения запросов Entity Framework: почему «это», а не лямбды? - PullRequest
6 голосов
/ 16 июня 2010

Я только начинаю работать с EF, и запрос, подобный следующему, кажется мне странным:

var departmentQuery =
                schoolContext.Departments.Include("Courses").
                OrderBy("it.Name");

В частности, мне выделяется "it.Name".Когда я работал с LINQ to SQL, почти каждый фильтр в запросе построителя запросов мог быть указан с помощью лямбды, как в этом случае d => d.Name.

Я вижу, что тамэто переопределения OrderBy, которые принимают лямбда-выражения, которые возвращают IOrderedQueryable или IOrderedEnumable, но у них явно нет метода Execute, необходимого для получения ObjectResult, который затем может быть привязан к данным.Вы читали о том, как лямбды имеют такое большое значение для такого рода вещей, и как они переводятся в деревья выражений, а затем на целевой язык - почему мне нужно использовать «it.Name»?

1 Ответ

2 голосов
/ 16 июня 2010

Я получаю выражения lamdba вместе с моими;Я могу сделать Где (it.SomeProperty == 1) ... у вас есть System.Linq в качестве пространства имен?Вы можете попробовать реструктурировать как:

var DepartmentQuery = из d в порядке schoolContext.Departments.Include ("Courses") по d.Name select d;

Это некоторые возможности.

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...