Visual studio 2010 如何在Visual Studio 2013中使用Entity Framework 4

Visual studio 2010 如何在Visual Studio 2013中使用Entity Framework 4,visual-studio-2010,entity-framework,entity-framework-4,visual-studio-2013,Visual Studio 2010,Entity Framework,Entity Framework 4,Visual Studio 2013,我们最近将Visual Studio从2010年升级到2013年。随之而来的是EF6.0,它与EF4生成的代码不兼容 我需要用DB模式中的最新版本更新模型中的表。执行此操作时,删除表定义后的“更新”和“添加”都会执行以下操作: 删除已为模型中的所有类型编写的所有自定义代码,即使它们位于模型之外的单独文件中 生成新的EF 6.0绑定 (可选)生成新存储库。 现在,这显然不同于EF4中的行为,EF4只重新生成了存储库,而不涉及自定义代码 我们不是在使用NuGet,而是在项目中引用EF库 我猜VS

我们最近将Visual Studio从2010年升级到2013年。随之而来的是EF6.0,它与EF4生成的代码不兼容

我需要用DB模式中的最新版本更新模型中的表。执行此操作时,删除表定义后的“更新”和“添加”都会执行以下操作:

  • 删除已为模型中的所有类型编写的所有自定义代码,即使它们位于模型之外的单独文件中
  • 生成新的EF 6.0绑定
  • (可选)生成新存储库。 现在,这显然不同于EF4中的行为,EF4只重新生成了存储库,而不涉及自定义代码
我们不是在使用NuGet,而是在项目中引用EF库

我猜VS2013使用的代码生成器版本与VS2010不同。我们怎样才能回到过去的行为

更新:
我已经尝试使用NuGet下载EF4.3.1并重复更新模型的步骤(同时删除然后重新创建),但我仍然看到旧的行为。我认为VS 2013 EF代码生成器存在问题。

对于我来说,以下解决方案有效

双击edmx文件并打开其属性窗口。将
代码生成策略
T4
更改为
遗留对象上下文
。构建您的解决方案。它可能会导致数千个错误,因为您重新声明了函数和属性,所以请删除以前不存在的所有文件


我也遇到过类似的问题,这太烦人了。我更喜欢一个永久性的解决方案。每次从数据库更新模型时,都会重置此值。