集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 新闻资讯 > 行业资讯 >

成都计算机培训学校:Entity Framework体系结构

发布者: 成都达内     浏览次数:     发布时间:2020-08-11 11:35:58

成都计算机培训学校:Entity Framework的体系结构主要包括:EDM元数据、Entity Client、Object Services和ADO.NET Provider四部分。其中EDM是整个Entity Framework框架实现ORM最核心的部分。...

  1.Entity Framwwork体系结构图

  成都计算机培训学校:Entity Framework体系结构

  Entity Framework的体系结构主要包括:EDM元数据、Entity Client、Object Services和ADO.NET Provider四部分。其中EDM是整个Entity Framework框架实现ORM最核心的部分。下面的章节会对图中Entity Framework的体系结构逐一进行介绍。

  2.EDM

  EDM(Entity Data Model)译为实体数据模型,它主要的作用是能够将数据库中的对象(表、视图、存储过程等)映射为C#中的实体类,从而实现操作实体类就等同于操作数据库对象。

  EDM的组成结构包含:CSDL(概念层)、SSDL(存储层)、对应层(MSL)。

  CSDL:是EDM最核心的部分也叫作概念模型。在创建Entity Framework后会根据数据库中的对象(表、视图、存储过程等)生成实体类,CSDL对应的就是这些实体类的描述信息。

  SSDL:描述数据库对象(表、视图、存储过程等)的信息,也就是将数据库中的对象信息加载到了Entity Framework中,并描述数据库对象的结构信息。

  MSL:负责CSDL(概念层)和SSDL(存储层)的映射关系,根据MSL的映射信息可以将实体类映射为数据库中的具体对象,这样就可以知道我们在操作某个实体类时对应到数据库操作的是那个对象(表、视图、存储过程等)。

  对应映射方式如图:

  成都计算机培训学校:Entity Framework体系结构

  另外在Entity Framework项目中,图中的三部分内容以一个XML定义并描述其中的信息,该信息存放在名为.edmx后缀的文件中。

  3.Entity Client

  我们知道ADO.NET操作数据库会有一套核心类库来实现,其中包括Connection、Command等,同样Entity Client模拟了ADO.NET实现了这些核心类库来对数据库操作。ADO.NET的核心操作类库是向数据库发送SQL来实现操作,而Entity Client是向EDM发送Entity SQL操作实体。我们可以总结理解:Entity Client模仿了ADO.NET核心类库从而实现了对数据的操作能力。

  4.Object Services

  简单来理解就是我们在使用实体类处理数据使用的方法。通常在操作Entity Framework实体对象时会两种方法:SQO(标准查询运算符方法)、LINQ。

  如图:

  成都计算机培训学校:Entity Framework体系结构

  图中的代码片段分别使用了SQO(标准查询运算符方法)和LINQ两种方法来操作实体对象,这种可以操作EF实体对象来实现数据操作的方法可以理解为Object Services。

  5. ADO.NET Provider

  不管EF有多少种体系结构最终处理后都要和数据库进行打交道(访问)。而负责与数据进行访问的就是ADO.NET Provider来完成的。上述的Entity Client虽然也和ADO.NET有过关系,但是Entity Client只是模拟ADO.NET对数据的操作方式,并生成操作命令。ADO.NET Provider会将Entity client的操作命令翻译为数据库的SQL语句来对数据库进行执行。

  通常ADO.NET Provider对数据库的访问还必须有数据库厂商提供的插件进行支持,VS默认并仅仅实现了对SQL Server的访问提供。如果需要使用其他的数据库来实现Entity Framework 还需要单独去对应的数据库厂商下载单独的数据访问插件来实现。

  6. edmx文件

  在项目中创建Entity Framework框架后会在项目中生成一个edmx后缀的文件,展开文件结构如图:

  成都计算机培训学校:Entity Framework体系结构

  6.1.edmx文件XML信息

  Edmx文件默认打开是一个图形化的界面描述了实体的模型信息,要以XML文件的方式打开需要对文件进行右击,在弹出的快捷菜单中选择“打开方式”选项,可弹出如下界面:

  成都计算机培训学校:Entity Framework体系结构

  在该界面中选择“自动编辑器选择程序XML”单击确定按钮打开,打开后如图:

  成都计算机培训学校:Entity Framework体系结构

  从图中可以看到XML中包含了SSDL、CSDL、CS mapping三种类型的节点,三个节点分别对应了EDM中的存储层、概念层、对应层。该文件是Entity Framework实现ORM的关键配置文件。

  SSDL节点内容

  成都计算机培训学校:Entity Framework体系结构

  从XML节点的内容来看就可以理解SSDL的概念,SSDL中包含了数据中所有对象并将所有对象以XML结构进行展示,从XML的节点和属性的定义来看SSDL完全描述了数据库中的信息。

  CSDL节点内容

  成都计算机培训学校:Entity Framework体系结构

  CSDL节点下的内容描述了实体类的各种信息,结合SSDL的内容可以看出每个项目在CSDL中都有一个一一对应的关系。

  CS Mapping节点内容

  成都计算机培训学校:Entity Framework体系结构

  根据CS Mapping节点内容EF底层可以弄清每个实体类对应到数据库中关系信息,从而实现数据库的操作。

  6.2.实体文件

  在倒数第一个后缀名为tt的文件展开后,可以获取到数据库所有对象(表、视图、存储过程等)对应生成实体类,这块的实体类是和数据库中的对象一一对应的。

  结构参考如图:

  成都计算机培训学校:Entity Framework体系结构

  6.3.数据上下文类

  扩展名为“.Context.cs”的类为数据上下文类,展开“.Context.tt”文件可以找到该文件。

  

  数据库上下文类中将所有实体类作为了自己成员,我们对数据实体的的所有操作都需要该类来完成。简单的理解“数据上下文类”,它就相当于一个数据库的管理者,通过该来完成所有对数据的操作。

  成都计算机培训学校:Entity Framework体系结构

  从上下文类中包含的信息可以看出,数据表变成了属性、存储过程变成了方法。

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56