Entity Framework框架
一、EF实体框架是一个对象关系映射器(O / RM),它使.NET开发人员能够使用.NET对象处理数据库。它消除了开发人员通常需要编写的大多数数据访问代码。
二、 Microsoft提供了“Entity Framework”框架,用于自动地执行所有与数据库相关的活动。EF是一个适用于.NET开发的开源ORM框架。
三、Entity Framework是ADO.NET中一组支持面向数据的开发应用程序的技术,基于Ado.Net,是微软的一个ORM框架。
四、EF它使开发人员能够通过领域对象来处理数据,而无需关注存储此数据的基础数据库;它保存实体属性中的数据到数据库,也可以从数据库中检索数据并自动将其转换为实体对象。
五、ORM核心思想:表与表实体的相互转换。
总结EF的特性
1.跨平台 EF Core是一个跨平台的框架,可以在Windows,Linux和Mac上运行。 2.建模 EF可以创建具有不同数据类型get / set属性的EDM(Entity Data Model/实体数据模型)。它使用此模型查询或保存底层数据库的数据。 3.查询 EF允许我们使用LINQ从底层数据库中检索数据,同时也支持直接对数据库执行原始SQL查询。 4.更改跟踪 EF会跟踪需要提交到数据库的实体实例(属性值)发生的更改。 5.保存 EF调用SaveChanges()方法时,根据实体发生的更改,对数据库执行INSERT,UPDATE和DELETE命令。EF还提供了异步的SaveChangesAsync()方法。 6.并发 默认情况下,从数据是从数据库中提取开始,EF使用乐观并发来避免我们做的修改被其他用户覆盖。 7.事务 EF在查询或保存数据时自动执行事务管理。它还提供自定义事务管理的选项。 8.缓存 EF包括开箱即用的第一级缓存。因此,重复查询将从缓存中返回数据,而不是访问数据库。 9.配置 EF允许我们使用注释属性配置EF模型,也可以使用Fluent API来覆盖默认约定。 10.迁移 EF提供了一组迁移命令,我们可以在NuGet Package Manager控制台或命令行界面中执行这些命令来创建或管理底层数据库计划。
EF总体架构:
架构中的组件
EDM(Entity Data Model):EDM由概念模型,映射和存储模型三部分构成(见上文)。
Linq to Entities:L2E是一个针对对象模型编写的查询语言,它返回定义在概念模型中的实体。
Entity SQL:Entity SQL是以一种查询语言有点像L2E,但是只能运行在EF6中。相对于L2E,Entity SQL稍难,而且需要开发者单独学习。
Object Service:Object Service是访问数据库的主要入口点。它负责将下一层返回的数据转换为实体对象的结构。
Entity Client Data Provider:这一次主要负责将Linq语句转化为数据的SQL语句,它与ADO.Net进行通信,ADO.Net又向数据库发送或检索数据。
ADO.Net D