【EF系列】EntityFrameWork实体关系映射

【EF系列】EntityFrameWork实体关系映射

2023年7月20日发(作者:)

【EF系列】EntityFrameWork实体关系映射⼀、前⾔ 在我们搭建框架的时候,总会建⽴⼀个”实体层“,这个实体层中的“实体”是和数据库中的“表”相对应的。当写实体层的时候就要我们⼿动写很多结构相似的代码。⾮常的繁琐。为此,⼩编向⼤家推荐⼀种机构——EntityFrameWork,简称EF。⼆、ORM 在介绍EF之前,⼩编要给⼤家介绍⼀下它的⽗亲——Object Relational Mapping,简称ORM,对象关系映射。 ⼤家看着名字都是英⽂,是不是觉得很难理解,反正我的感觉是不好理解。但是,微软为⼤家提供这个服务,总会有实例。简单的说:ORM相当于中继数据。具体到产品上,例如 Entity Framework。DLINQ中实体类的属性[Table]就算是⼀种中继数据。 什么⼜是中继数据呢?如果没听说过,⼤家可能听说过”中继器“,中继器的作⽤是对信号进⾏再⽣和还原的⽹络设备。对就是再⽣的作⽤。所以ORM的作⽤就是再⽣数据。(学习要有三级联查的习惯,遇到不会的就要动⼿查。) 再⽤⽐较官⽅的语⾔表达⼀下,跟踪实体变化,并翻译成SQL脚本,执⾏到数据中去,实体变化映射表的变化。 ORM⽅法论基于三个核⼼原则:简单:以最基本的形式建模数据。传达性:数据库结构被任何⼈都能理解的语⾔⽂档化。精确性:基于数据模型创建正确标准化了的结构。 图⼀ ORM

三、EF映射 前⽂中已经说到EF映射是ORM的⼀种具体的⼯具。 下⾯给⼤家分析⼀下EF的原理: 其实Entity Framework的底层也是调⽤,它是更⾼层次的封装.作为数据访问的技术,EntityFramework的设计有⾼扩展性,这⼀点可体现在其映射定义的灵活性.简单地说,使⽤Entity Framework可以充分地定义与数据库表映射的实体,这个实体可以直接⽤于业务逻辑层或作为服务的数据契约.使⽤EF后,可以将实体类的设计⼯作完全放在EDM的设计过程中,⽽不需要⼿⼯写那些⼤同⼩异的代码,令⼈欣喜的是这个实体模型可以在运⾏时修改并⽣效,做到⼀改全改.我们开发时也不⽤再频繁地与数据库打交道,我们操作实体模型的同时EF框架⾃动完成了对数据库的操作. 它可以分成三类: 这三种会在以后的博客中依次介绍。先分别介绍⼀下这三种⽅法的联系: se First是基于已存在的数据库,利⽤某些⼯具(如VS提供的EF设计器)创建实体类,数据库对象与实体类的匹配关系等,你也可以⼿动修改这些⾃动⽣成的代码及匹配⽂件。也就是从⼀个数据库开始,然后⽣成实体框架和相应代码。 First 是先利⽤某些⼯具(如VS的EF设计器)设计出可视化的实体数据模型及他们之间的关系,然后再根据这些实体、关系去⽣成数据库对象及相关代码⽂件。 First 这种⽅式需要先写⼀些代码,如实体对象,数据关系等,然后根据已有的代码描述,⾃动创建数据对象。但其实这种⽅法与Model First是⾮常类似的。我们⾃⼰写的代码,其实就是⽤代码表⽰实体模型,⽽Model First是⽤可视化的⽅式描述了实体模型。 下⾯分析这三种⽅式的优缺点: Database-First模式明显性能会差点,但是它很适合初学者,或者是⽐较急的⼩型项⽬。还有⼀点,我们在做项⽬时可能不容易体会到它的好处,但如果做数据库结构⽐较成熟稳定的产品时,我们可以很轻松的使⽤数据库⽣成实体模型,从⽽实现快速开发。 Model-First模式优点是开发⼈员能够在模型设计完成后,可以利⽤VS等⼯具快速⽣成数据库脚本。缺点是设计模型时完全了解数据库的结构,在模型中⼿动添加表关系,并且⽣成的脚本有点不简洁。 Code-First模式优点是性能⽐较好,且代码较少冗余。不过它的缺点也有很多,由于都是代码编写的,⽐如更新数据库。四、总结 EF是⼀个很好的机构,可以让我们的代码简练,还可以提⾼我们代码的拓展性。掌握好这三种⽅式会更好的提⾼⾃⼰。加油~~

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689825314a288954.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信