从EF 4.0 ObjectContext升级到EF 6 / 6.1

小猪69

我想将基于FX 4.0和EF 4.0(数据库优先带ObjectContext)的大型项目升级到最新的EF 6 / 6.1版本。

我已经(成功地)完成了实际升级EDMX的所有步骤(添加T4模板,更改名称空间引用等,按照本文将EF 4 EDMX升级到EF 6的步骤),现在我的数据访问程序集可以正常编译。

为了快速完成工作,我使用ObjectContext T4模板执行升级,以希望最大程度地减少所需的代码更改。我使用的模板是Visual Studio Gallery中的“ EF 6.x EntityObject Generator模板”,整个解决方案仍将基于.Net Framework 4.0。

我想知道使用EF6代替ObjectContext代替DBContext是否会减少或限制新EF 6的好处(我将继续使用数据库优先策略)。

3天

DbContext只是ObjectContext的一个(很好的)包装,它启用了相当容易的Code First,它使您可以轻松使用POCO,并且通常更方便地使用它构建数据层。但是从本质上讲,利用DbContext的代码在下面仍然使用相同的ObjectContext功能。

除此之外,与ObjectContext相比,DbContext具有一些局限性:例如,不存在对使用DbContext的StoredProcedures的开箱即用的支持(CUD操作的存储过程除外),因此无论如何您都必须回退到ObjectContext。

实体框架6带来了一些好处,这些好处在代码使用方面是不可见的,例如-改进的性能和错误修复。您将使用Context的任何一个自动获取这些内容。

编辑

就个人而言,我全心全意地使用DbContext,因为它现在是“推荐”(实际上,是唯一受支持的)方式,但是如果您具有非常大的数据库模型(具有大量表,SP等)和代码,基于此,迁移到DbContext将需要您对数据层进行重大更改,而这在短期内不会给您带来好处。但是,它肯定会改善您的系统设计,并使您可以长期获得将来的改进。

Entity Framework 7公告指出了即将进行的重大更改(包括新平台和数据存储支持),这些更改可能对您有用,也可能没有用。

这实际上意味着您应该仔细考虑现在和将来的目标。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章