ASP.NET MVC学习---(二)EF文件结构-阿里云开发者社区

开发者社区> xiaohei.info> 正文

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

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/38306841 之...
+关注继续查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/38306841

之前已经简单的介绍过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的大概文件结构就是这样

是时候休息了~

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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【HEVC学习与研究】44、HEVC量化系数的解析——反量化过程
【同其他模块一样,HEVC标准文档中只实现了反量化过程,量化过程交由编码器实现。这样可使得编码器采用如自适应量化AQ、率失真优化量化RDOQ等更优的量化方法。
1581 0
ASP.NET Core轻松入门Bind读取配置文件到C#实例
首先新建一个ASP.NET Core空项目,命名为BindReader 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫appsettings呢?  打开Program.
874 0
【HEVC学习与研究】45、HEVC的自适应采样点补偿SAO
1、SAO的意义 在图像中像素值剧烈变化的边界区,经过编码-解码重建之后通常会出现波纹状的失真现象,这种失真称作振铃效应。振铃效应产生的根本原因在于边界区高频分量在编码过程中丢失。
1043 0
Linux 学习记录 二 (文件的打包压缩).
前言:本文参考《鸟哥的Linux 私房菜》,如有说的不对的地方,还请指正!谢谢!  环境:Centos 6.4    和window不同,在Linux压缩文件需要注意的是,压缩后的文件会把源文件给替代,无论是gzip、bzip2、xz 均不支持压缩目录,要达到压缩目录的目的,需要用到tar指令。
588 0
基于多任务学习和负反馈的深度召回模型
召回结果的好坏对整个推荐结果有着至关重要的影响,最近的一系列实践和研究表明,基于行为序列的深度学习推荐模型搭配高性能的近似检索算法可以实现既准又快的召回性能;与此同时,用户在天猫精灵上还可以进行实时指令操控(歌名点播:“播放七里香”、风格流派推荐点播:“来点摇滚”、主动切歌:“下一首”等),如何利用这些丰富的反馈信息改进召回模型的性能,他们是怎么做的呢?
1090 0
【HEVC学习与研究】39、HEVC帧内编码的原理和实现(上)
【前面N篇博文都讲了一些HEVC帧内预测的代码结构和简单的方法,但是尚未对整体的算法和实现做一个比较完整的描述。本篇借助参考文献《High Efficiency Video Coding (HEVC) -- Algorithms and Architectures》的相关章节的阅读笔记,对HEVC的帧内预测算法做一个比较完整的阐述。
942 0
+关注
121
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载