我在这里找到了一个有趣的讨论
http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&gid=43315&discussionID=12708606&goback=.anh_43315
引用:
DataSet是用于编码数据层的业余解决方案......停止使用它们并学习代码!:)
您对DataSet的看法是什么?只是简化自定义类并与之合作?还有什么其他选择?
除了Snobbery之外,DataSets在具有相对简单的业务逻辑的应用程序中非常有用,并且开发人员可以控制数据库模式,这样数据表就可以匹配1:1业务对象(在这种情况下通常由DataRow组成).
Martin Fowler在企业应用程序架构模式(Amazon链接)中非常清楚地讨论了这一点.DataSet(Fowler命名法中的表模块)与事务脚本很好地匹配,而域模型需要更好的定义类和数据库映射器(因为业务对象和表之间的1:1关联通常无法在此实现情况).
DataSets/Table Module有很多限制,但它们在简单性方面具有优势,特别是如果您在.NET中工作.
一个务实的程序员将评估给定应用程序的要求,并应用最适合的模式和技术,即使它们不是最性感的.对于直接1:1映射到关系数据的简单场景,DataSet不会太糟糕.但是,他们经常这样做,并且任何依赖于它们的程序员都会在更复杂的场景中遇到麻烦.