Entity DataSource не работает с Entity Framework 6 Upgrade

entitydatasource entity-framework entity-framework-6

Вопрос

Недавно я обновил наше приложение Webforms от EF 4.4 до EF6, и у меня было так много ошибок сборки времени компиляции с элементами управления данными Entity Datasource. Как правило, я получаю эту ошибку во всех случаях при попытке доступа к объекту контекста:

e.Context

Я пошел по тому же пошаговому руководству, что и в: http://entityframework.codeplex.com/wikipage?title=Updating%20Applications%20to%20use%20EF6

Отображаемая информация об ошибке:

1) Модуль System.Data.Entity. version = "4.0.0.0" следует ссылаться

2) Невозможно выразить выражение типа System.Data.Objects.ObjectContext для ввода объекта ObjectContext (после того, как явно введите casting в System.Data.Entity.Core.Objects.ObjectContext)

Может ли кто-нибудь помочь исправить это?

Принятый ответ

Я просто прошел это упражнение при обновлении до EF 6 от EF 5, и у меня были те же ошибки.

Вот что я должен был сделать.

Install-Package Microsoft.AspNet.EntityDataSource

Он зарегистрирует новый элемент управления EntityDataSource в файле web.config на страницах:

<pages>
  <controls>
    <add tagPrefix="ef" assembly="Microsoft.AspNet.EntityDataSource" namespace="Microsoft.AspNet.EntityDataSource" />
  </controls>
</pages>

Следующий шаг - заменить существующие элементы <asp:EntityDataSource /> на <ef:EntityDataSource /> на ваших страницах aspx.

Заключительный шаг - зайти в ваш код и обновить ссылки для EntityDataSourceContextCreatingEventArgs или любых других тегов EFContext.

Из

protected void OnContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e){... } 

к

protected void OnContextCreating(object sender, Microsoft.AspNet.EntityDataSource.EntityDataSourceContextCreatingEventArgs e){... } 

Все это сработало, и мне не пришлось ссылаться на System.Data.Entity в сборке.


Популярные ответы

Доступен элемент управления Entity DataSource для EF6 в предварительном просмотре с 2014-01-30 (подробности в этом объявлении Microsoft ). Это доступно как пакет nuget: http://www.nuget.org/packages/Microsoft.AspNet.EntityDataSource/

Если вы попытаетесь загрузить его из диспетчера пакетов nuget, обязательно выберите элемент «включить предварительную проверку» в верхнем поле со списком.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему