EF原理剖析一:如何实现ORM

本文探讨了Entity Framework(EF)与ORM的关系,解释了ORM如何将对象模型与关系数据库对应。通过分析EF的XML映射方式,揭示了DBFirst方法下Model1.edmx文件的三层结构——存储层SSDL、概念层CSDL和映射层C-S,强调了C-S映射层在EF中的核心地位,为理解EF的底层工作原理提供了详细解析。
摘要由CSDN通过智能技术生成

前言

最近项目中用到了EF,初次接触,使用了基本的增删改查。而对于EF底层的原理,却没有了解的透彻。俗话说,知其然,还要知其所以然。

一、EF和ORM

ORM(Object-Relational-Mapping)对象关系映射,是将关系型数据库的表关系映射成面向对象中的对象模型。EF是将表实体的变化,映射到数据表的变化。

注意:ORM框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中

二、EF如何实现ORM

这里写图片描述
EF是通过xml的方式实现映射的。这里采用DBFirst的方式生成EF实体模型,即Model1.edmx.使用xml编辑器打开,如图:
这里写图片描述
分为三层:存储层SSDL、概念层CSDL、映射层C-S
存储层SSDL代码示例:

  <edmx:StorageModels>
      <Schema Namespace="Model1.Store" Provider="Oracle.ManagedDataAccess.Client" ProviderManifestToken="12.1" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
        <EntityType Name="DEPTINFO">
          <Key>
            <PropertyRef Name="DEPTINFONO" />
          </Key>
          <Property Name="DEPTINFONO" Type="varchar2" MaxLength="32" Nullable="false" />
          <Property Name="deptname" Type="varchar2" MaxLength="32" />
          <Property Name="deptnumber" Type="number" Precision="38" Scale="0" />
          <Property Name="deptboss" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值