在数据访问层中,查询数据库并返回结果的可枚举对象,返回具有属性Name,Age等的Dog对象列表的优点是什么,而不是具有像“of”这样的列的DataTable姓名“,”年龄“等?
答案 0 :(得分:8)
一些:
答案 1 :(得分:7)
如果你使用普通的DataTable,你最终会得到魔术字符串(即使你使用常量)。提取值的代码最终会变得笨拙且容易出错,主要是因为您最终必须提供数据(名称,表达式等),而您真正想要表达代码< / em>的
每当您致电DataTable.Select
或DataTable.Sort
或访问DataRow
索引器时,想象一下,如果您使用的是强烈的绒毛 - 并且错误的可能性更小模型。当然,这可能是一个强类型的数据集,但即便如此,我发现与POCO的摩擦力通常较小。
此外,POCO通常比DataTables需要更少的测试代码。
答案 2 :(得分:1)
如果使用对象而不是DataTables,则会获得强类型结果,并使使用数据的代码更加清晰。您不必拥有各种字符串就可以访问应该只是对象上的属性。
此外,如果您使用像NHibernate这样的ORM工具,您可以直接从数据库映射到您的对象,而无需手动调用数据库并处理SqlCommands等。
答案 3 :(得分:0)
它将您的业务逻辑与持久层分开。
所以你的'Dog'对象,以及使用它的大部分代码,都可以关注Dogs and Doginess,而不用担心本周哪种数据访问风格很流行。