EF 基础(第一章: 什么是 Entity Framework?)

什么是 Entity Framework?

在 .NET 3.5 之前,我们(开发者)通过写 ADO.NET 代码或者 Enterprise Data Access Block 组件来保存或者检索来自底层数据库应用程序数据。我们要打开一个数据库连接,创建一个 DataSet 来获取数据库数据或者提交数据到数据库,把来自 DataSet 的数据转换成 .NET 对象,或者反过来应用业务规则。这是一个冗长的而且容易出错的一个过程。微软已经提供了一个框架叫做 “Entity Framework” 用来为我们的程序自动完成这些数据库相关的操作。

Entity Framework 是一个被微软支持的为 .NET 程序服务的开源的 ORM 框架。它使开发者能够用特定域的类对象来工作,而不是把精力集中在底层的数据表和数据存储的列上面。有了 Entity Framework ,开发者在处理数据时能够工作在一个更高的抽象层面上,并且能够用比传统程序更少的代码来创建和维护面向数据的程序。

官方定义:“Entity Framework 是一个对象关系映射器(object-relational mapper (O/RM)),它能够使开发者利用 .NET 对象跟数据库打交道。开发者再也不需要写大量的代码用来访问数据。”

下面的图表展示了 Entity Framework 处于我们你们应用程序的什么位置。
这里写图片描述
正如上图所示,Entity Framework 处在业务实体(域类)和数据库之间。它用来保存业务实体的属性(properties)中的数据和从数据库中检索数据并且自动转换到业务实体对象中。

Entity Framework 特性:

  • 跨平台: EF Core 是一个跨平台的框架,它可以运行在 Windows,Linux和 Mac上。
  • 建模: EF (Entity Framework) 创建一个基于 POCO (Plain Old CLR Object) 实体的 EDM (Entity Data Model),POCO实体含有不同数据类型的get/set 属性 (properties)。EF 在查询和保存实体数据到底层数据库的时候会使用 EDM 模型。
  • 查询: EF 允许我们使用 LINQ 查询(C#/VB.NET)从底层数据库检索数据。数据库提供器将 LINQ 查询转换成特定数据库的查询语言(例如:关系型数据库的SQL).EF也允许我们执行原生的SQL查询来查询数据库。
  • 改变跟踪: 实体实例中 (Property values) 中发生的需要被提交到数据库的任意改变将被 EF 持续跟踪。
  • 保存: 当你调用SaveChanges()方法时,EF会根据你的实体的改变执行INSERT, UPDATE, 和DELETE命令。EF也提供异步方法SaveChangesAsync()
  • 并发: 当其他用户从数据库获取数据后要重写数据时,EF默认采用乐观并发(Optimistic Concurrency)。
  • 事务: 当查询和保存数据时,EF执行自动事物管理。EF也提供了定制事务管理的选项。
  • 缓存: EF包含开箱即用的第一级缓存。所以,重复查询将会返回缓存中的数据,而不是再次访问数据库。
  • 内置约定: EF遵循约定高于配置的编程模式,并且包含了一组默认规则用来自动配置EF模型。
  • 配置: EF允许我们使用数据注释特性或者 Fluent API 来重写默认的约定。
  • 迁移: EF提供了一组迁移命令,可以在 NuGet Package Manager Console 或者 Command Line Interface 中创建和管理底层数据库架构。

Entity Framework 最新版本:

微软在2008年随着 .NET Framework 3.5 引入了 Entity Framework。自那时起,微软发布了 Entity Framework的很多版本。目前,有两个最新的 Entity Framework版本:EF 6 和 EF Core。下面的表格列举了二者之间的重要区别。
这里写图片描述

EF 6 版本历史:

EF VersionRelease Year.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 CoreVersion Release Date.NET Framework
EF Core 2.0August 2017.NET Core 2.0, VS 2017
EF Core 1.1November 2016.NET Core 1.1
EF Core 1.0June 2016.NET Core 1.0

在下一章了解使用 EF 工作的基本工作流程。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值