18、认识EF_1、EF介绍
ORM
ORM (实体关系模型)
O: Domain Object 领域模型
R: Relational Database 关系型数据库
M: Mapping 映射关系
EntityFramework也是其中一种orm框架
参考资料:
EDM 是一个可视化的工具,用来生成 O,R,M
EF框架结构说明:
上图右边是EF框架
<1> 两种语法查询db: Linq to Entities Entity SQL
<2> ObjectServices: 在linq to Entity 和 Entity client Data Provider之间起到相互转换的作用。
<3> Entity client Data Provider: 将Lambda转化为具体的sql语句(实际上是拼接表达式树然后将表达式树转为sql)。
(SqlProvierService) => EntityFramework.SqlServer这个dll所包含。
<4> ADO.net Data Provider : 最简单的一个ADO.Net。也就是EF帮我们操作ADO.NET。EF底层也是操作ADO.NET。
<5> DataBase: 数据库本身。
EDM框架结构说明:
上图左边是EDM框架,EDM框架主要是DBFirst模式创建数据库会用到。用来映射数据库中的表到项目中生成一个个实体。而且帮我们创建上下文对象等。DBFirst模式用处还是挺大。不过CodeFirst模式创建EF则一点都用不到,因为自己已经建立好实体和上下文对象了。只需要一个EF工具将实体映射创建到数据库即可。
DBFirst创建EF框架步骤
1、nugut包下载EF框架
DBFrist模式在新建ADO.NET实体模型的时候会自动引用EF框架。所以这一步也可以不用下载,不过CodeFirst则必须要。但是CodeFirst也可以通过创建一个EDM,然后复制EF框架的dll文件,然后删除掉EDM这种方法得到EF框架。因为有时候nuget包或者nuget控制台因为网络原因下载不了EF框架。
安装后会自动生成这几个引用和这个包描述文件
Entity client Data Provider的具体dll
当然:创建好EF框架引用后,还需要创建上下文对象,数据库表实体等等,如果是DBFirst模式,直接创建EDM即可自动帮我们创建好数据库表的实体。
2、创建EDM
创建EDM可以帮我们生成上下文对象,模型设计器、数据库的表的实体等,当然,EDM这个可视化工具不是必须的,比如使用codeFirst创建EF,就可以自己创建上下文对象类,只要继承DBContext类即可,再建立实体,然后直接映射实体创建到数据库(数据库迁移或者是EF映射工具)即可。codeFirst创建EF框架,不需要EDM。EDM的表格图示化界面每次打开还非常卡。
项目右键->添加->新建项
2.1
2.2
2.3
2.4
2.5
弹窗都点是,不要勾选不再显示此消息
2.6
EDM创建完成
EDM结构: