Связывание данных веб-форм с ошибкой запроса EF Code-First Linq

В этом примере здесь Скотт показывает выполнение запроса Linq к dbContext и привязку результата непосредственно к GridView для отображения списка продуктов. . В его примере используется версия CTP4 для Code First.

Однако, когда я пытаюсь сделать то же самое, используя последнюю версию EntityFramework 4.1, я получаю следующую ошибку:

Связывание данных непосредственно с запросом хранилища (DbSet, DbQuery, DbSqlQuery) - это не поддерживается. Вместо этого заполните DbSet данными, например, вызывая Load в DbSet, а затем привязывайтесь к локальным данным.

Я вижу, что объект DBQuery намеренно выдает эту ошибку в своей реализации IListSource.GetList (), который используется в привязке данных.

Есть идеи, почему его пример работает? Кстати, я знаю, что могу выполнить эту работу, вставив projects.ToList () . Мой главный вопрос заключается в том, изменилось ли что-то в выпускной версии, из-за чего такие вещи больше не работают, или мне где-то не хватает чего-то, что могло бы обойти эту ошибку.

Для справки, я имею в виду такой код, как это:

MyDbContext db = new MyDbContext();

var projects = from p in db.Projects
               where p.AnotherField == 2
               select p;

grdTest.DataSource = projects;
grdTest.DataBind();

10
задан abatishchev 16 December 2011 в 18:30
поделиться