Entity Framework入门教程(1)---Entity Framework简介

什么是Entity Framework

学习EF的前提:熟练使用Linq和Ado.net,由于在使用EF框架进行开发时,咱们大多数状况使用Linq进行查询和操做,而EF的底层实现用的是Ado.net。html

1.EF的概念

  在.NET3.5以前,咱们常常编写ADO.NET代码或企业数据访问块来保存或检索底层数据库中的数据。作法是:打开过一个数据库的链接,建立一个DataSet来获取或提交数据到数据库,经过将DataSet中的数据和.NET对象相互转换来知足业务需求。这是一个麻烦且容易出错的过程Microsoft提供了“Entity Framework”框架,用于自动地执行全部上述与数据库相关的活动。
EF是一个适用于.NET开发的开源ORM框架。它使开发人员可以经过领域对象来处理数据,而无需关注存储此数据的基础数据库。使用实体框架,开发人员在处理数据时能够在更高的抽象级别上工做,而且与传统应用程序相比,可使用更少的代码建立和维护面向数据的应用程序。
官方定义:“实体框架是一种对象关系映射器(O/RM),它使.NET开发人员可以经过.NET对象来操做数据库。它消除了开发人员一般须要编写的大多数数据访问代码的需求。“数据库

实体框架工做在业务实体(域类)和数据库之间。它保存实体属性中的数据到数据库,也能够从数据库中检索数据并自动将其转换为实体对象。
缓存

2.EF功能汇总

这里简单地总结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控制台或命令行界面中执行这些命令来建立或管理底层数据库计划。

 

3.EF组成

下图很好地说明了EF的基本组成:app

 

EF的组成简单总结以下:框架

  一、EDM(实体数据模型): EDM包含三个主要部分——概念模型,映射和存储模型。异步

    概念模型(entity): 概念模型包含了模型类和它们之间的关系。 这将是独立于数据库表设计。数据库设计

    存储模型(data): 存储模型是数据库设计模型,包括表、视图、存储过程、以及它们之间的关系和钥匙。ide

    映射(mapping): 映射由概念模型如何映射到存储模型的信息组成。post

  二、LINQ To Entity(L2E): L2E是一种的查询实体对象的语言, 它返回在概念模型中定义的实体。 

  三、Entity SQL: Entity SQL是一个相似于L2E的查询语言。 然而,它比L2E更加复杂。

  四、Object Services(对象服务):对象服务是访问数据库中的数据并返回数据的主要入口点。它负责数据实例化,把Entity Client Data Provider(下一层)的数据转换成实体对象。

  五、Entity Client Data Provider:主要职责是将L2E或Entity Sql转换成数据库能够识别的Sql查询语句,它经过ADO.Net Data Provider向数据库发送或者索取数据。

  六、ADO.Net Data Provider:使用标准的Ado.net与数据库通讯。

 

EF系列目录连接:Entity Franmework系列教程汇总