gpt4 book ai didi

c# - Entity Framework 4.3.1 到 6 EDMX (ObjectContext)

转载 作者:可可西里 更新时间:2023-11-01 08:19:08 25 4
gpt4 key购买 nike

我正在尝试将项目从 EF 4.3.1 升级到 EF 6.0

模板使用 ObjectContext,现在,每当我更改模板时,它都会用旧的 EF 4.3.1 命名空间覆盖 *.Designer.cs 文件中生成的代码,因此构建中断。

有什么办法可以阻止这种情况发生吗?我看不到要破解的 *.tt 文件。重新生成 EDMX 并不是一个真正的选择,因为对概念模型进行了重大定制(我会花好几天时间!)。

我已经尝试创建一个新的 EDMX 作为测试,但它出现了同样的问题。一旦我将 ObjectContext 使用的代码生成更改为“默认”,EDMXName.Designer.cs 文件就会使用旧命名空间编写。

using System;
using System.ComponentModel;
using System.Data.EntityClient;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml.Serialization;

这让我分心 - 我想我将不得不将其分解为 EF 5.0

最佳答案

我已经解决了这个问题。这是因为您已从 EF 5.X 升级到 EF 6.X,您的 edmx 仍在使用旧的传统生成策略。

你需要什么:

安装其中 1 个扩展后,您想要备份 edmx 和设计器文件(或使用源代码管理)。重新启动 Visual Studio。

重新启动 Visual Studio 后,您想进入您的项目并:

  1. 进入图表设计界面
  2. 右键选择“添加代码生成项”
  3. 选择“EF 6.X 实体对象生成器”并将其命名为合适的名称,如“Template.tt”
  4. 让世代发生
  5. 回到设计界面,确保代码生成策略现在是T4
  6. 删除由旧版 EF 5.X 创建的设计器文件

这会为您提供 ObjectContext 派生上下文以及与较新的 EF 6.0 命名空间匹配的所有内容。

关于c# - Entity Framework 4.3.1 到 6 EDMX (ObjectContext),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com