实体数据源不适用于实体框架 6 升级



我最近将我们的 WebForms 应用程序从 EF 4.4 升级到 EF6,并且使用实体数据源控件时出现了很多编译时生成错误。通常,我在尝试访问上下文对象时在所有情况下都会遇到这些错误:

e.Context

我遵循了与中给出的相同的演练:http://entityframework.codeplex.com/wikipage?title=Updating%20Applications%20to%20use%20EF6

显示的错误信息是:

1)模块系统.数据.实体。版本="4.0.0.0" 应引用

2) 不能将类型为 System.Data.Objects.ObjectContext 的表达式大小写 类型 ObjectContext(显式类型转换为 System.Data.Entity.Core.Objects.ObjectContext 后)

任何人都可以帮助解决这个问题吗?

我刚刚在从 EF 6 升级到 EF 5 时完成了此练习,并且遇到了相同的错误。

这是我必须做的。

Install-Package Microsoft.AspNet.EntityDataSource

它将在 web.config 中的 pages 下注册一个新的实体数据源控件:

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

下一步是替换现有的<asp:EntityDataSource />控件以在 aspx 页中<ef:EntityDataSource />

最后一步是进入代码隐藏并更新 EntityDataSourceContextCreationEventArgs 或任何其他类型的 EFContext 标记的引用。

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

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

这一切都有效,我不必在程序集中引用System.Data.Entity。

EF6 的实体数据源控件自

2014 年 1 月 30 日起提供预览版(此Microsoft公告中的详细信息)。它以 nuget 包的形式提供:http://www.nuget.org/packages/Microsoft.AspNet.EntityDataSource/

如果尝试从 nuget 包管理器下载它,请务必在顶部组合框中选择"包含预发行版"项。

根据 IDE 给出的建议,我们可以转到 NuGet 包控制台并运行以下命令来安装新的实体框架数据源:

Install-Package Microsoft.AspNet.EntityDataSource

此外,添加以下包(如本文中所述):

Install-Package Microsoft.AspNet.DynamicData.EFProvider

相关内容

  • 没有找到相关文章

最新更新