【ITOO】 EF框架之ORM思想的体现

本文介绍了EF(Entity Framework)作为ORM(对象关系映射)工具的核心概念和使用原因。通过阐述ORM的工作原理,解释了如何通过EF将对象操作映射到数据库,简化了数据访问层的代码编写。同时,文章讨论了为何选择EF,强调其减少重复代码并专注于对象处理的优势。最后,提出了学习和应用EF的关键在于实践。
摘要由CSDN通过智能技术生成

           在项目中,不管是哪个子系统,底层框架用的都是一套东西,在对实体的操作一方面用的就是EF

           首先要问三个问题

                 第一,它是什么?

                 第二,为什么用?

                 第三,怎么用?

 

1.What  is EF

           EFEntity Framework),is an object-relational mapper that enables .NET developers to workwith relational data using domain-specific objects. Entity Framework allows youto create a model by writing code or using boxes and lines in the EFdesigner.Both of these approaches can be used to targe an existing database orcreate a new database.

           也就是说EF是通过跟踪实体的变化,根据映射关系以及实体的变化生成相应的SQL脚本,并执行到数据库中去。在使用过EF之后我们都知道,EF有三种模式,可以创建一个新的数据库,也可以使用原有的数据库。但最终都是在通过对实体的操作去操作数据库,也就是直接操作的对象是实体。这也就把对实体的变化映射到数据库表的变化了,这种思想正是ORM。那么什么是ORM呢?

           如果别人问你一个问题,什么是ORM,也许你可以随口说出对象关系映射,英文:Object Relational Mapping,简称ORM。下面我们用图来说明一切吧。

         

         O就是对象

         R就是数据库的关系,可以说关系数据库表

         Mapping是一种映射,这种映射可以把对对象的操作映射到数据库表关系上。实现对象到关系数据库的映射。

 

           而与我们的三层或者是熟悉的框架结合就是下面这样。在B层和U层,我们是面向对象的。当对象的信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。有了ORM之后,我们只需对对象中的实体操作即可。也可以说ORM是一个中间件,主要实现程序对象到关系数据库数据的映射。

                 


2.Why useEF

           在学习EF以前,一直的以前,当你开发一个应用程序的时候,可能会写不少数据访问层的代码,用来从数据库读取对象信息,增删改查的一些操作等。在DAL层中写了很多的方法来读取数据,改变对象状态的语句,而这些代码有太多的重复。例如,我们在机房中时,传入一个实体,要使用SQLCommand对象添加参数,所有属性要一一对应,设置CommandText属性的存储过程,然后运行SQLCommand。而每个对象都要重复写类似这样的代码,同理查询和更新。一个好的方法就是能有一个机制可以为你自动生成DAL,而你关系的重心落在对象身上就好。恰好EF就是体现这种思想的一种框架,这也就回答了开篇的第二个问题。

 

3.How touse it

           既然EFORM的一种体现,而且我们也知道EF有三种模式,在项目中我们所使用的就是EF,队友说过一句话,EF其实不难,跟着敲一遍代码就懂了,我也说,再多的原理都不如自己动手做一遍,怎么使用在学习EF三种模式的时候会有所说明。

 

           整篇文章似乎都是叙述什么是ORM,可能因为个人对ORM情有独钟吧,实在说EF,意在体现ORM思想。小编只是在想ORM这种思想很微妙,很前卫,把面向对象的思想用的淋漓尽致,通过一种映射关系,把所有的操作全部映射过去。这是一种进步,一个思想上的进步。以后的我们不再围绕着数据库绕圈,而是要围着实体转了。

  
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值