ADO.NET Entity Framework 是什么?是微软发布的一个对象-关系映射框架,大家都知道JAVA里有一个很有名的组合开发叫SSH,微软也打造了类似的SSH模式,在VS2008 SP1。微软集合了两样比较重要的东西,一个是ASP.NET MVC 另外一个就是ADO.NET Entity Framework ,习惯上喜欢叫EF。貌似。。还少一个SPRING就完成了微软版本的SSH了。当然只是感觉上的相似,这个东西跟SSH完全是两会事。
ADO.NET Entity Framework是建立在LINQ的基础上的。提供了从关系数据库模式到对象的映射。在过去,我们开发的时候,都会先把这些关系数据库里的表,构建对象。过去哦那种开发模式,我想大家都不陌生了,三层架构里,这个东西是最常用的,而且现在网上也有很多类似的软件,生成数据库表对象代码。只是不知道那个公司把ADO.NET Entity Framework投入了实际开发中,在我初步的试用过程中,我觉得ADO.NET Entity Framework的确能帮我们提高开发速度。但是也有缺陷。就是更新太快,很难投入实际运作,就算是LING现在用的 公司也并不多,大部分都还是停留在2.0时代。真正要实现普及难度不是一般的大,1.1到2.0花了2年多才勉强普及,还是在1。1有重大不足的前提下,现在2。0已经相对问题,要这些公司更新你到3.5难度还不小啊,至少国内是这样。貌似我还没有资格评论这些。。。因为太年轻。
ADO.NET Entity Framework需要定义三层,分别是:逻辑层,概念层,映射层。如果是直接用VS的导航做,这些很方便,但是导航永远不能满足复杂的现实,所以我们还是需要自己动手去一步一步的做,当然,如果想先入门一下,可以用导航去感受一下。其实我也是在学习阶段,个人感觉貌似.NET的布局有点像向SSH的方向靠拢,突然看到SP1有这么大的整合感觉到。。。貌似.NET会有大动作。
--------------------------------------------------------背景------来自百度知道---------------------------------------
长久以来,程序设计师和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序设计师一定要为了连接与访问数据库而去学习
SQL 指令,因此在信息业中有很多人都在研究如何将程序设计模型和数据库集成在一起,对象关系对应 (Object-Relational Mapping) 的技术就是由此而生,像
Hibernate或
NHibernate都是这个技术下的产物,而微软虽然有了
ADO.NET这 个数据访问的利器,但却没有像NHibernate这样的对象对应工具,因此微软在.NET Framework 2.0发展时期,就提出了一个ObjectSpace的概念,ObjectSpace可以让应用程序可以用完全对象化的方法连接与访问数据库,其技术概念 与NHibernate相当类似,然而ObjectSpace工程相当大,在.NET Framework 2.0完成时仍无法全部完成,因此微软将ObjectSpace纳入下一版本的.NET Framework中,并且再加上一个设计的工具(Designer),构成了现在的 ADO.NET Entity Framework。
Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象化的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以 及支持 Entity Framework 的数据提供者 (provider),让数据访问的工作得以顺利与完整的进行。
(1) 概念层:负责向上的对象与属性显露与访问。
(2) 对应层:将上方的概念层和底下的储存层的数据结构对应在一起。
(3) 储存层:依不同数据库与数据结构,而显露出实体的数据结构体,和 Provider 一起,负责实际对数据库的访问和 SQL 的产生。
posted on 2009-06-22 21:52
^乔乔^ 阅读(2502)
评论(2) 编辑 收藏 引用 所属分类:
c#