Entity Framework基础(1)——什么是Entity Framework?

什么是Entity Framework?

在.NET 3.5之前,我们(开发者)经常编写ADO.NET代码或Enterprise Data Access Block从底层数据库保存或检索应用程序数据。我们以前的做法是:

  1. 打开一个数据库连接;
  2. 创建一个DataSet来获取或提交数据到数据库;
  3. 将数据从DataSet转换为.NET对象或相反的从.NET对象转换为DataSet,来满足业务规则。

这是一个麻烦且容易出错的过程。微软提供了“Entity Framework”框架,为你的应用自动化处理这些数据库相关的活动。

Entity Framework是一个由微软支持,用于.NET开发的开源ORM框架。它使开发人员能够通过实体类来处理数据,而无需关注存储此数据的底层数据库。有了Entity Framework,开发者在处理数据时可以在更高的抽象级别上工作,并且与传统应用程序相比,相比于传统应用程序,可以使用更少的代码创建和维护面向数据的应用。

官方定义:“Entity Framework是一种对象关系映射(O/RM),它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发者通常需要编写的大量数据访问代码的需要。”

下图说明了Entity Framework在你的应用程序的位置。

Entity Framework基础(1)——什么是Entity Framework?
如上图所示,Entity Framework运行于业务实体(域类)和数据库之间。它保存业务实体属性中的数据到数据库,也可以从数据库中检索数据并自动将其转换为业务实体对象。

Entity Framework的特征

  • 跨平台:EF Core是一个跨平台的框架,可以在Windows,Linux和Mac上运行。
  • 建模:EF可以创建基于POCO(Plain Old CLR Object-简单传统 CLR 对象)实体的EDM(Entity Data Model-实体数据模型),含有get/set属性的不同数据类型。它使用此模型来查询或存储底层数据库的数据。
  • 查询:EF允许我们使用LINQ(C#/VB.NET)来检索底层数据库中的数据。数据库提供者将LINQ转换为数据库特有的查询语言(如关系数据库SQL)。EF也同时允许我们执行原始SQL语句直接操作数据库。
  • 更改跟踪:EF能跟踪需要提交到数据库的实体中实例(属性值)发生的更改。
  • 保存:当调用SaveChanges()方法时,EF根据实体发生的更改,对数据库执行INSERT、UPDATE和DELETE命令。EF也提供了异步SaveChangesAsync()方法。
  • 并发:从数据在数据库中提取开始,EF默认使用开放式并发来保护我们做的修改不被其他用户覆盖。
  • 事务:EF在查询或保存数据时自动执行事务管理。它还提供自定义事务管理的选项。
  • 缓存:EF包括即用的一级缓存。因此,重复查询将从缓存中返回数据,而不是访问数据库。
  • 固有规范:EF遵循配置编程模式的规范,并包括一系列自动配置EF模型的默认规则。
  • 配置:EF允许我们通过使用注释属性配置EF模型,也可以使用Fluent API来覆盖默认规范。
  • 迁移:EF提供了一系列迁移命令,我们可以在NuGet包管理器控制台或命令行界面中创建或管理底层数据库架构。

Entity Framework最新版本

Microsoft在2008的.NET Framework 3.5中引入了Entity Framework。自那时起,发布了许多版本的Entity Framework。目前有两个最新版本的Entity Framework:EF 6 和EF Core。下面的表格指出了EF 6 和EF Core的一些重要的不同:

Entity Framework基础(1)——什么是Entity Framework?

EF 6历史版本

EF 版本发布时间.NET Framework版本
EF 62013.NET 4.0 & .NET 4.5, VS 2012
EF 52012.NET 4.0, VS 2012
EF 4.32011.NET 4.0, VS 2012
EF 4.02010.NET 4.0, VS 2010
EF 1.0 (or 3.5)2008.NET 3.5 SP1, VS 2008

了解有关EF 6版本历史及其功能的更多信息请点击

EF Core历史版本

EF Core 版本发布时间.NET Framework版本
EF Core 2.02017.08.NET Core 2.0, VS 2017
EF Core 1.12016.11.NET Core 1.1
EF Core 1.02016.06.NET Core 1.0

了解有关EF Core版本历史及其功能的更多信息请点击


个人渣翻,欢迎指正。

相关推荐