狗蛋的窝 2019-09-08
在.NET 3.5之前,我们(开发者)经常编写ADO.NET代码或Enterprise Data Access Block从底层数据库保存或检索应用程序数据。我们以前的做法是:
这是一个麻烦且容易出错的过程。微软提供了“Entity Framework”框架,为你的应用自动化处理这些数据库相关的活动。
Entity Framework是一个由微软支持,用于.NET开发的开源ORM框架。它使开发人员能够通过实体类来处理数据,而无需关注存储此数据的底层数据库。有了Entity Framework,开发者在处理数据时可以在更高的抽象级别上工作,并且与传统应用程序相比,相比于传统应用程序,可以使用更少的代码创建和维护面向数据的应用。
官方定义:“Entity Framework是一种对象关系映射(O/RM),它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发者通常需要编写的大量数据访问代码的需要。”
下图说明了Entity Framework在你的应用程序的位置。

如上图所示,Entity Framework运行于业务实体(域类)和数据库之间。它保存业务实体属性中的数据到数据库,也可以从数据库中检索数据并自动将其转换为业务实体对象。
SaveChanges()方法时,EF根据实体发生的更改,对数据库执行INSERT、UPDATE和DELETE命令。EF也提供了异步SaveChangesAsync()方法。Microsoft在2008的.NET Framework 3.5中引入了Entity Framework。自那时起,发布了许多版本的Entity Framework。目前有两个最新版本的Entity Framework:EF 6 和EF Core。下面的表格指出了EF 6 和EF Core的一些重要的不同:

| EF 版本 | 发布时间 | .NET Framework版本 |
|---|---|---|
| EF 6 | 2013 | .NET 4.0 & .NET 4.5, VS 2012 |
| EF 5 | 2012 | .NET 4.0, VS 2012 |
| EF 4.3 | 2011 | .NET 4.0, VS 2012 |
| EF 4.0 | 2010 | .NET 4.0, VS 2010 |
| EF 1.0 (or 3.5) | 2008 | .NET 3.5 SP1, VS 2008 |
了解有关EF 6版本历史及其功能的更多信息请点击
| EF Core 版本 | 发布时间 | .NET Framework版本 |
|---|---|---|
| EF Core 2.0 | 2017.08 | .NET Core 2.0, VS 2017 |
| EF Core 1.1 | 2016.11 | .NET Core 1.1 |
| EF Core 1.0 | 2016.06 | .NET Core 1.0 |
了解有关EF Core版本历史及其功能的更多信息请点击
个人渣翻,欢迎指正。