【问题标题】:Entity DataSource not working with Entity Framework 6 Upgrade实体数据源无法与实体框架 6 升级一起使用
【发布时间】:2013-11-05 15:08:48
【问题描述】:

我最近将我们的 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 类型的大小写表达式转换为 type ObjectContext(显式类型转换为 System.Data.Entity.Core.Objects.ObjectContext 之后)

谁能帮忙解决这个问题?

【问题讨论】:

  • 您是否更改了 Edmx 模型的 Designer 文件?检查实体框架的设计器文件并从这个内部类 YourDataContext : ObjectContext 更改为内部类 YourDataContext : Entity.Core.Objects.ObjectContext
  • 是的,我们已经尝试过了,但没有成功。
  • 当前可用的 EntityDataSourceControl 不支持 EF6。我们正在努力提供支持 EF6 的版本。敬请期待。

标签: entity-framework entity-framework-6 entitydatasource


【解决方案1】:

我刚刚从 EF 5 升级到 EF 6 时进行了这个练习,我遇到了同样的错误。

这是我必须做的。

Install-Package Microsoft.AspNet.EntityDataSource

它会在页面下的 web.config 中注册一个新的 EntityDataSource 控件:

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

下一步是将您的 aspx 页面中现有的 &lt;asp:EntityDataSource /&gt; 控件替换为 &lt;ef:EntityDataSource /&gt;

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

来自

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

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

一切正常,我不必在程序集中引用 System.Data.Entity。

【讨论】:

  • 此外,您应该删除属性 DefaultContainerName 和 ConnectionString,并在 EntityDataSource 上设置 ContextTypeName。
【解决方案2】:

EF6 的 Entity DataSource 控件自 2014 年 1 月 30 日起在 预览版中可用(详细信息在 this Microsoft announcement 中)。它以 nuget 包的形式提供http://www.nuget.org/packages/Microsoft.AspNet.EntityDataSource/

如果您尝试从 nuget 包管理器下载它,请务必选择顶部组合框中的“包含预发布”项。

【讨论】:

    【解决方案3】:

    根据IDE给出的建议,我们可以进入NuGet Package Console,运行以下命令安装新的Entity Framework数据源:

    Install-Package Microsoft.AspNet.EntityDataSource
    

    另外,添加以下包(参考this 文章):

    Install-Package Microsoft.AspNet.DynamicData.EFProvider
    

    【讨论】:

      猜你喜欢
      • 2016-03-09
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 2014-09-23
      相关资源
      最近更新 更多