• ASP.NET MVC学习---(二)EF文件结构


    之前已经简单的介绍过ORM框架和EF

    也了解了EF的种种优点

    那么这个EF到底长啥样子都还没见过呢

    别着急

    接下来,科学教育频道--走近科学

    带你走进EF的内心世界~


    那么接下来就是~

    等等等等...

    在实际操作之前

    我们有必要先理解清楚 对象关系映射 到底是啥

    有同学会问

    了解这做什么

    学会怎么用不就好了?

    这你就大错特错了

    如果这时候你要把EF当做你的老婆

    你选老婆的时候会这么不在乎吗~

    如果你什么都不知道娶了一个老太太

    那也是老婆啊

    只不过是老了一点而已,人家年轻的时候也是江南一枝花呢!

    其实就是为了强调学知识要了解原理,理解透彻这个道理而已~~

    废话不说~上一张本菜自己画的对象关系映射图

    原谅本菜水平有限= =

    如果看不懂,请google之~

    相信会有让你满意的答复


    那么现在我们就来开始解剖EF~

    但是解剖之前肯定是需要一个EF文件呀


    为了方便,本菜建了个控制台程序,并且准备了一个数据库

    关系图:


    项目上右键->添加->新建项

    选择ADO.NET实体数据模型

    有的同学使用vs2010添加项的时候可能会没有这个ADO.NET实体数据模型

    那可能是因为没有安装这个模板

    网上下一个下来安装就ok啦

    你问为什么我会知道这么多?

    因为我以前用vs2010的时候也没有...shit!

    选择从数据库中生成(DbFirst)

    然后...(这里略过一些简单的添加过程)


    添加完成之后会发现项目中对了一个小玩意儿

    贴图出来晒晒

    没错就是她,后缀名为edmx的家伙,这就是传说中的EF

    双击edmx看看这到底是个啥

    是不是发现和数据库中的关系图很像?

    这就是EF的可视化的关系模型

    你可以再这里随意的添加你想要的属性

    生成数据库的时候会将新增的属性更新到数据库对应的表中

    并将关系映射保存在xml中

    我们可以通过这个来设计实体数据模型,而不必自己辛苦的编写xml代码

    这就是二房的威力呀!

    不信你可以试试,我会骗你?



    那么从头到尾一直在说关系映射保存在一个xml文档中

    那这个xml文档在哪,怎么啥都看不到


    别急~

    右键edmx文件->打开方式,选择xml文本编辑器

    点击确定之后

    接下来

    就是见证奇迹的时刻!


    哇靠!这一大坨什么鬼东西!

    没错,它确实是鬼东西,乱七八糟的反正我是看不懂= =

    但是我看懂了一个

    里面都是xml代码

    咦..

    edmx的关系图变成了一个xml文档

    这搞啥飞机?

    其实这个edmx文件本身就是一个xml文档,而且就是我们苦苦寻找的那个保存关系映射的xml文档!

    所以在操作实体关系图的时候其实就是在编写对象关系的xml代码

    是不是很人性化

    这个老婆越看越喜欢呀~


    现在我们将这个xml代码折叠一下

    可以看到整个文档可以分为三个部分

    SSDL content

    CSDL content

    C-S mapping content

    本菜英文不是很好所以看不懂...

    但是我们既然知道这个xml文件的作用是保存对象关系的映射

    那么我们可以来猜测一下

    S开头的那家伙,好像SQL也是S开头的

    先打开它看看

    仔细看看也许你会发现下面的节点

    咦,这个好像是数据库中T_Users表和里面字段的信息也,然后在看到有一个Type="nvarchar(max)"这不就是数据库表字段的类型吗!

    没错,SSDL content里面保存的就是数据库中表的信息


    那么我们再来看看CSDL content

    打开它还是会发现有一个一样的节点

    但是这个节点属性的类型明显不一样,这不就是我们很熟悉的C#中的类型吗

    那么这个CSDL content保存的就是程序中实体类的信息

    那么最后的C-S mapping content就很明显了

    肯定是保存表和类的对应关系

    不信你打开瞧瞧

    我会骗你?


    EF会根据这个edmx的xml文档来生成EF数据上下文

    还有对应数据库表的实体类

    你猜猜哪个是数据上下文哪个是实体类?

    别逗了好吗...

    Model.Context.cs

    和T_Users.cs  T_Products.cs很明显了吧...

    那么后缀名tt的东西是啥?

    这些其实是模板文件

    EF根据xml生成这些模板

    然后根据模板文件生成的数据上下文和实体类


    好了,EF的大概文件结构就是这样

    是时候休息了~

    欲知后事如何,且听下回分解


  • 相关阅读:
    es6语法快速上手(转载)
    width百分比
    利用switch case 来运行咱们结婚吧
    利用if else来运行咱们结婚吧
    利用if else 来计算车费
    利用switch case判断是今天的第多少天
    利用if else判断是否及格
    利用if,else判断输入的是不是一个正整数
    再练一遍猜拳
    用if else 判断是不是7的倍数等
  • 原文地址:https://www.cnblogs.com/jchubby/p/4429722.html
Copyright © 2020-2023  润新知