当前位置:  开发笔记 > 数据库 > 正文

数据集是ORM吗?

如何解决《数据集是ORM吗?》经验,为你挑选了1个好方法。

与ORM(NHibernate或Spring.Net)相比,我对数据集有点困惑.根据我的理解,ORM位于应用程序层和数据库层之间.它将为应用程序层生成SQL命令.这与数据集的作用相同吗?数据集和ORM有什么区别?这两种方法有哪些优缺点?希望这里的专家可以解释一下.

谢谢,Fakhrul



1> Hoghweed..:

它们之间存在着巨大的差异,首先是它们所代表的编程模型:

    数据集是基于表型号

    一个ORM(没有指定框架的一个特定产物)是基于并趋于领域模型.

    还有另一种可用于数据场景的工具,这种工具是数据映射器(例如iBatis.NET)

正如其他人在我面前回答的那样,我认为重要的是要看看微软对Dataset的看法以及维基百科对ORM的更好说明,但我认为(这对我来说是开始的)更多的是要了解它们之间在模型方面的差异.理解这不仅可以澄清背后的选择,而且更容易理解工具本身.

几乎没有解释,可以说:

表模型

是一种模型,它倾向于尽可能接近地表示存储器结构中的表格数据(甚至根据需要).因此,很容易找到实现概念的实现,如,,关系实际上模型在表结构上是集中的,因此面向对象不是基于数据本身.这种模式可能有其自身的优势,但在某些情况下可能很难管理并且很难应用所包含数据的概念.正如之前的答案所说,像Dataset这样的实现,让或更好,迫使您准备(即使使用工具)所需的SQL指令来对数据执行操作.

ORM

是一个模型(正如mendelt在我之前所说的那样),其中对象直接映射到数据库对象,主要是表和视图(即使它甚至可以映射函数和过程).这通常以两种方式完成,其中一个映射文件描述了映射,或者(在.NET或Java的情况下)代码属性.该模型基于对象它代表了数据,因此可以在正常程序中对它们进行面向对象,在某些情况下更明显更加注意和谨慎,但一般来说,当你对ORM有信心时,它可能是一个非常强大的工具!如果ORM管理和设计得不好,或者更好理解weel,即使ORM也可能很难管理,所以理解技术很重要,但我可以根据自己的经验说ORM是一个非常强大的工具.在ORM中,该工具主要负责生成操作在代码中完成所需的SQL指令,在更多情况下,ORM具有中间语言(如HQL)来对对象执行操作.

MAPPER

映射器是一种不像ORM那样的工具,但是将手写的SQL指令映射到对象模型.当需要手工编写SQL指令时,这种工具可能是更好的解决方案,但是它想要设计一个应用程序对象模型来表示数据.在这个"模型"中,对象被映射到指令并在映射文件中描述(通常是iBatis.Net或iBATIS(java)的Xml文件).使用映射器可以在SQL指令中定义粒度规则.在这种情况下,可以很容易地找到一些ORM概念,例如会话管理.

ORM和Mappers允许应用一些非常有趣的设计模式,这些模式可能不太容易以相同的方式应用于表模型,在本例中也适用于数据集.

首先请原谅我这个冗长的答案以及我糟糕的英语,但对我来说,这样的答案让我过去很好地理解这些模型之间的区别,然后是实现之间的区别.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有