EF:EntityFrameWork,是一种框架(所谓的框架可以理解为直接的使用别人已经写好的代码),而且这种框架是一种ORM框架(Object/Relation Mapping)。
首先说一下现阶段我自己是如何理解EF的,EF是利用面向对象的思想对数据库进行操作,它可以将数据库中的表生成一个实体对象,而表中的字段就对应的生成实体的属性,这样在程序中操作数据库是就可以直接利用面向对象的思想编写代码这样就可以不使用SQL语句。这样说的话就是通过用面向对象的思想通过EF操作数据库,那么这样和我们之前学过的使用ADO.net操作数据库又有什么联系呢?
首先来看一张图,我们会发现EF和ADO.net都是存在的,EF并没有代替了ADO.net直接的来操作数据库,实际上是我们在应用程序中通过EF可以利用面向对象的思想操作数据库,而EF还是要生成SQL语句最后通过ADO.net来操作数据库。
那么在我们的数据库中会有很多的表,每个表都会有很多的字段,那EF是在生成类的时候是如何将表和实体对象对应起来的呢?当我们在VS中建立了“ADO.net实体数据模型”是会产生扩展名为.edmx的文件,我们可以将它的打开方式改为xml形式的,简化之后我们可以得到下图,在XML文件中会分别的有表示数据库、实体对象、及数据库和实体对象映射关系的语句,通过XML文件可以对数据库表和实体对象进行映射。
在最后生成的.edmx文件中会后一个扩展名.tt的这个是传说中的t4模板,具体的生成的代码都在t4模板中,在这里面做的一些修改可以直接的反映到生成的实体对象中。
如上的这段代码是t4模板中用来生成属性的,其中的注释“//生成属性”是我自己添加的,最后的反应在具体的生成的类中是这样的,可以t4模板可以控制类生成。
小结
初次接触EF对它有一个大概的了解,它是在ADO.net之后出现的,更加符合面向对象的思想。对它有一个初步了解之后就要知道具体如何时候到底有什么好处,所以还要进一步的学习。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/yxflovegs2012/article/details/46863821