大家好, 好久不见, EF 系列之前落下了, 还是打算重新整理一下.
先说说目前的打算: 先简单了解一下 EF 基础系列 -->然后就是 EF 6 Code-First 系列 -->接着就是 EF 6 DB-First 系列 -->最后就是 EF Core 系列的学习了. EF Model-First 已经过时, 被微软抛弃, 就不学了. 这一次打算好好整理一下, 一定不会烂尾, 更新的可能慢点, 但一定不烂尾, 一定不烂尾, 一定不烂尾. 谢谢大家支持!
好了, 废话不多说, 直接步入正题.
早在. NET 3.5 以前, 程序员都是经常写 ADO.NET 代码或者使用企业内部访问数据的代码块, 来从相应的数据库中查询数据或者保存数据到其中. 我们经常需要打开数据库的连接, 然后创建一个数据集(DataSet), 来查询数据, 或者提交数据到数据库, 然后手动写代码将 DataSet 的数据转化为. NET 对象中, 反之亦然. 这样的做法是累赘的, 而且容易出错. 微软提供了一个框架叫做 "Entity Framework", 用来简化上述的操作.
Entity Framework 是微软一手打造的开源的 ORM 框架. 它确保开发者可以使用特定的领域类而不是把时间消耗在相关联的数据表和表的数据列上, 使用 EF, 开发者可以在处理数据的时候, 只用专注于更高级别的抽象层, 写更少的代码就可以完成和传统开发相同的工作.
官方的定义是:"EF 是关系对象映射框架, 它确保. NET 开发者开发者, 使用. NET 对象来和数据库打交道, 而不必去写传统开发模式中的数据库访问的代码".
下面的图形, 列出来了 EF 在你的项目中的起到的作用.
如上图所示, EF 嵌套在业务层和数据库层中间, 数据保存的时候是这样, 数据值保存在业务层的属性中, 然后通过 EF 转化之后保存到数据库, 查询数据的时候, 也是类似, 数据从数据库抓取之后, 通过 EF 转化之后, 就传递给业务层的属性中.
Entity Framework 的特点:
跨平台(Cross-platform):EF Core 是跨平台的框架, 可以运行在 Windows,Linux 和 Mac 上;
模型化 (Modelling):EF 基于 POCO(Plain Old CLR Object) 实体, 创建了一个实体数据模型(EDM--Entity Data Model), 这些实体数据具有不同类型的属性. 当查询或者保存数据库的时候就会使用到这些实体, 和相应的数据打交道.
查询(Querying):EF 允许我们使用 LINQ 查询语法来从数据库获取数据, 数据库提供程序将会把 LINQ 语句, 翻译成 SQL 语句. EF 同样还是允许我们使用原生的 SQL.
更改追踪(Change Tracking):EF 会持续追踪, 将要提交到数据库的实体的任何改变.(这里指的是实体的属性值得改变).
保存(Saving): 当你调用 EF 的 SaveChanges 方法的时候, EF 就会对数据库发起, 执行增删查改的指令. EF 同样提供了异步保存 SaveChangesAsync 的方法.
并发(Concurrency):EF 默认使用乐观并发, 来确保数据从数据库获取之后, 被其他用户更改.
事务(Transactions): 查询或者保存数据的时候, EF 提供了自动的事务管理, 当然 EF 可以允许你自定义事务操作.
缓存(Caching):EF 提供了一些开箱即用的缓存. 所以当重复查询数据的时候, 会直接从缓存获取数据, 而不是又去查询一遍数据库.
内置的约定(Built-in Conventions):EF 遵循约定大于配置原则, 根据这些原则自动配置 EF 实体.
配置 (Configurations):EF 允许我们使用数据注解特性(Data annotation attribute) 来配置 EF 实体, 还可以使用 Fluent API, 来重写默认的配置.
迁移(Migrations):EF 提供了一系列的迁移指令, 我们可以通过 Nuget Package Manage 控制台来执行这些指令或者使用命令行的方式来执行这些操作.
Entity Framework 最新的版本
EF 是在 2008 年的时候, 跟随. NET Framework 3.5 一起由微软发布的. 从那时候开始就一直迭代开发, 经历了很多版本.
当前的版本是 EF6 和 EF Core(注意: 这是这篇文章中写的时候, 最新的版本, 实际上, EF Core 3.0 都出来了, 而且 EF 现在是 6.2 的版本). 下面的图, 列出来了 EF6 和 EF Core 之间的差异.
EF 6 版本的历史
EF Core 版本的历史
好了, EF 的继续系列, 第一篇就介绍完了. 有不明白的可以留言, 谢谢支持.
附录:
EF 6 官方文档: https://docs.microsoft.com/zh-cn/ef/ef6/
EF Core 官方文档: https://docs.microsoft.com/zh-cn/ef/core/
来源: https://www.cnblogs.com/caofangsheng/p/10588245.html