DataSet不是ORM,但可以使用Dataset构建ORM http://www.15seconds.com/issue/080103.htm
这类文章非常罕见,因为人们似乎反对数据集和ORM以及其他任何一个例子?
答案 0 :(得分:2)
ORM与DataSet完全不同。
DataSet是内存中关系数据库表的1:1副本; DataSet包含多个DataTable,每个DataTable由列和行组成。它或多或少是“内存中的关系数据库” - 没有映射,没有翻译 - 只是1:1的副本。
如果您对使用此列/行样式(适用于许多情况)感到满意,那么一切都很好。
ORM是一个完全不同的野兽 - 顾名思义,它是一个对象关系映射器,例如它将这些关系列和行映射到域模型中的域对象及其集合中。它在列和行之间执行映射到具有属性的对象集合。
您不再处理客户表,而是处理客户对象,客户列表等。您正在针对“普通”业务对象进行编程,并且在您保存时,ORM将负责将表映射到表,列和行。
由于DataSet或多或少是数据库的1:1副本,理论上你可以在其上面放置一个ORM来从中获取对象 - 但重点是什么?为什么甚至首先要使用DataSet的路线,当你想要最终使用ORM?我认为这种方法没有任何好处......
向我(以及其他Stackoverflowers)解释为什么要在其上使用DataSet和ORM?你的目标是什么,你的想法/方法是什么?
所以它真的是在DataSet或ORM之间进行选择 - 要么适用,要么迎合不同的编程和架构风格。选择你的,并对它感到满意。
马克
答案 1 :(得分:0)
我同意marc_s的评论。
您提到的文章似乎有点过时了。在ORM工具的可用性比现在更有限的时候,它试图使用数据集作为ORM工具。
我建议您查看Entity Framework(ORM),它支持活动记录模式,以及具有类似于数据集的UI工具。如果您所做的只是基于数据库自动生成实体,您可能不会注意到使用数据集的巨大差异。
http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx