我们最近将 Visual Studio 从 2010 升级到 2013。随之而来的是 EF 6.0,它与从 EF 4 生成的代码不兼容。
我需要使用数据库模式中的最新版本更新模型中的表。这样做时,删除表定义后的“更新”和“添加”都执行以下操作:
- 删除已为模型中所有类型编写的所有自定义代码,即使它们位于与模型不同的文件中;
- 生成新的 EF 6.0 绑定;
- (可选)生成新的存储库。现在,这显然与 EF 4 中的行为不同,后者仅重新生成了存储库,并没有触及自定义代码。
我们没有使用 NuGet,而是在项目中引用 EF 库。
我猜 VS 2013 使用的代码生成器版本与 VS 2010 不同。我们如何才能恢复到旧的行为?
更新: 我尝试使用 NuGet 下载 EF 4.3.1 并重复更新模型步骤(也删除然后重新创建),但我仍然看到旧行为。我认为 VS 2013 EF 代码生成器存在问题。