从EF 3.5迁移到EF 6?

时间:2018-09-24 15:48:08

标签: c# entity-framework

首先,我需要声明自己是固件专家,因此对在该主题上的无知表示歉意。我可能未提供所有相关信息。我正在寻找有关如何解决所面临问题的建议。

我有一个用VS 2008编写的项目,目标是.NET3.5和EF 3.5。有一个数据库查询似乎与数据库表的大小成指数关系。这是一个只读查询。我看到新版本的EF带有.AsNoTracking(),似乎可以大大提高此类查询的性能。

  1. 我可以通过某种方式在EF 3.5中实现等效于.AsNoTracking的功能吗?

  2. 我应该考虑将项目更新到EF 6以获得此新功能吗?

  3. 如果升级是适当的方向,通常需要进行多少工作?也许是更好的问题,需要进行哪些更改?

1 个答案:

答案 0 :(得分:0)

  

我应该考虑将项目更新到EF 6以获得此新功能吗?

是的。 EF 3.5绝对太旧了,太糟糕了,无法使用。您可以不理会它,或者转到EF6(或EF Core)。请注意,升级EF需要迁移到.NET 4和更新版本的Visual Studio(或可能是VS Code)。

  

[升级]需要进行哪些更改?

通常,使用Visual Studio 2017将项目升级到.NET4.X。使用Code-First to an Existing Database workflow向应用程序中添加 new EF 6模型,确保生成新的实体键入不同的C#名称空间。然后遍历该应用程序,并更改所有引用3.5 EF模型的代码,以引用新的EF 6模型。一旦可以使用,请从应用程序中删除EF 3.5模型。