Sol*_*arX 45 entity-framework entity-framework-4 entity-framework-6
我的应用程序在EF 4中首先使用数据库EDMX.我想将所有内容升级到EF 6.使用NuGet获取EF 6后,我必须对使用我的EF模型的类进行大量更改,因为命名空间已经过在EF 6中改变了.然后我意识到,我的EDMX生成的代码也使用了错误的命名空间等.到目前为止我没有使用自定义T4.
如何将现有的EDMX升级到EF 6.
谢谢.
Ran*_*dom 56
Mat*_*att 29
除了Rand Random和Dean Oliver给出的答案之外,让我提一下以下MSDN链接,描述升级到EF6的一般步骤.不要低估所需的手动步骤......
路线图是(见上文链接中的详细信息):
安装EF6 NuGet包
确保删除对System.Data.Entity.dll的程序集引用(注意:安装EF6 NuGet包应该自动从项目中删除对System.Data.Entity的任何引用).
交换任何EF Designer(EDMX)模型以使用EF 6.x代码生成.
笔记:
ObjectContext在项目中使用过,则应考虑下载模板"EF 6.x EntityObject Generator".然后在模型设计器中右键单击,选择"添加代码生成项",然后选择尚未使用的名称.它将生成正确的类,之后您必须删除所有旧(" *.tt")文件和相关生成的类(" *.cs")文件.更新正在使用的任何核心EF类型的名称空间,即
System.Data.*被移动到System.Data.Entity.Core.*System.Data.EntityState => System.Data.Entity.EntityStateSystem.Data.Objects.DataClasses.EdmFunctionAttribute=> System.Data.Entity.DbFunctionAttribute.System.Data.Objects.EntityFunctions=> System.Data.Entity.DbFunctions.DbGeography,DbGeometry)已经从移动System.Data.Spatial=>System.Data.Entity.Spatial注意:
有关详细信息,可EF模板可以发现这里在MSDN.
如果您在升级到EF6.x后收到过时的属性警告,请查看此SO文章:如何摆脱过时的属性警告?
| 归档时间: |
|
| 查看次数: |
24282 次 |
| 最近记录: |