使用POCO而不是DataTables有什么好处?

Bri*_*ith 7 c#

在数据访问层中,查询数据库并返回结果的可枚举对象,返回具有属性Name,Age等的Dog对象列表,而不是具有"Name"等列的DataTable,有什么好处, "年龄"等?

Ali*_*tad 8

一些:

  • 类型安全
  • 序列化不仅仅是XML而是JSON,二进制......
  • 可读性
  • 更轻盈
  • 能够添加行为
  • 能够定义DataAnnotation和验证逻辑
  • 能够使用ORM


Jon*_*eet 7

如果你使用普通的DataTable,你最终会得到魔术字符串(即使你使用常量).提取值的代码最终变得笨拙且容易出错,这主要是因为您最终必须提供数据(名称,表达式等),而您实际上是在尝试表达代码.

每当你打电话DataTable.Select或者DataTable.Sort访问DataRow索引器时,想象一下如果你使用的是强类型模型,那么会减少多少绒毛 - 而且错误的可能性会降低.当然,这可能是一个强类型的数据集,但即便如此,我发现与POCO的摩擦力通常较小.

此外,POCO通常比DataTables 需要更少的绒毛来测试代码.