使用数据集构建ORM

时间:2009-09-19 13:50:17

标签: c# orm dataset

DataSet不是ORM,但可以使用Dataset构建ORM http://www.15seconds.com/issue/080103.htm

这类文章非常罕见,因为人们似乎反对数据集和ORM以及其他任何一个例子?

2 个答案:

答案 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