如何使用实体框架 4.0 将 C# 应用程序升级到 4.3.1

本文关键字:应用程序 实体 何使用 框架 | 更新日期: 2023-09-27 18:35:17

我们有一个 ASP.Net 应用程序,它是使用实体框架4.0构建的,它是.Net 4.0的一部分。 在阅读了许多关于新功能的文章,最重要的是,4.1、4.2 和 4.3 生成的更简洁的 SQL 之后,我们决定借此机会升级我们的应用程序以使用 4.3.1。

我使用 NuGet 将 4.3.1 安装到应用程序中,它成功地安装了 EntityFramework.dll;它添加了对它的引用,当我构建时,它会添加到 bin 文件夹中。 在运行时,一切都运行良好,但是,在SQL探查器中查看并使用Hibernatine Rhinos的实体框架探查器,SQL似乎是相同的。

由于NuGet所做的唯一一件事是添加引用,因此我认为我需要执行其他操作来强制应用程序在运行时使用4.3.1,但是我无法找到必须执行的操作。

我很欣赏 SQL 对于正在运行的查询可能是相同的,并且仅查看生成的 SQL 可能不会显示任何差异,但我希望能够确认新版本确实在运行时使用。

我是否需要向 web.config 添加其他内容以确保使用 4.3.1 或我所做的工作是否足够? 当然,我需要在某处更改某些内容,以便使诸如System.Data.Entity之类的东西来自新的EntityFramework.dll而不是标准。Net4.0 库。

任何帮助都感激不尽。斯特

如何使用实体框架 4.0 将 C# 应用程序升级到 4.3.1

这是对meetjaydeep的步骤的重复。感谢他和dpblog,我从那里获得了大部分信息。

按照此处所述安装 EF 4.3.1。

安装 EF 4.3.1
请注意,在进行升级之前,这将暂时破坏您的代码。所以我建议在继续之前进行备份。

    安装
  1. NuGet(如果尚未安装)。
  2. 打开 NuGet 包管理器控制台(VS2010 菜单栏>工具>库包管理器)
  3. 加载完成后,执行以下命令,请确保在按回车键之前从下拉列表中选择正确的项目:安装包实体框架 - 版本 4.3.1

按照此处所述将 EF 4.0 升级到 EF 4.3.1(我只想跳到步骤 4)。

从 EF 4.0 升级到 EF 4.3.1<</strong>br/>请注意 - 仅仅因为您安装了 EF 4.3.1,绝对并不意味着您已经完成。您刚刚所做的只是让自己选择使用新模板(从我自己这样做后看到的)。现在是时候使用这些新模板了。

  1. 打开 EDMX 设计视图。
  2. 在设计表面上;右键单击>添加代码生成项
  3. 从左侧菜单中选择"在线模板"
  4. 搜索"DbContext"
  5. 从列表中选择"EF 4.x 数据库上下文生成器"
  6. 此项目的名称与 EDMX 的名称不同。"__Model.tt"(填空)。我使用了 ___DBCModel.tt - 示例:FooDBCModel.tt
  7. 点击"添加"
  8. 验证是否已创建两个文件:例如 FooDBCModel.tt 和 FooDBCModel.Context.tt。

修复您现在略微损坏的代码
你的代码现在无法编译 - 不要绝望 - 那是因为你刚刚所做的是将System.Data.Objects.ObjectContext换成新的和改进的(无论如何对我来说)System.Data.Entity.DbContext(Yaaaaay...)

  • 您需要更新所有 CUD(创建、更新、删除)方法。
  • 而不是使用上下文。AddToEntityNameHere(...) 使用上下文。EntityNameHere.Add(...)
  • 示例:上下文。添加产品(产品)>上下文。产品添加(产品)
  • 您现在可以访问"数据库"属性
  • 您现在可以访问 Entry(...) 方法。
  • 现在可以显式声明要在更新期间更新的属性(上下文。保存更改())。感兴趣?看这里。
在我看来,完全

值得做额外的工作。EF 4.0 对于它来说太有限了。EF 4.3.1 更加灵活,我喜欢提供的语法糖。我确信EF 5.0更好,但我现在无法实现飞跃。

享受。

若要使 EF4.3.1 可用,应首先安装 EF4.1 update1 并使用最新的 NuGet。

EF4.0 是数据库优先或模型优先,如果要升级到 EF4.3,最简单的方法是使用"代码生成器":http://blogs.msdn.com/b/adonet/archive/2011/09/28/ef-4-2-model-amp-database-first-walkthrough.aspx