2

当您从数据库中检索数据时,您更喜欢哪个场景?

1 - 填充数据表,然后将数据网格视图绑定到它?

或者

2-填充您自己的自定义对象的通用列表,然后将 datagridview 绑定到它?

谢谢

4

2 回答 2

2

2 - 对象列表:-)

原因(或如马克所说,“优点”):

  • 重量更轻
  • 通过自定义类扩展列表的能力
  • 可能以更适合业务对象的方式对对象使用过滤器/linq
  • 数据表是 Microsoft 特定的。如果您需要将它们传递给非 Microsoft,即 Java Web 服务,您将需要创建一个单独的业务对象来传递给它。
  • 查看当前的 OR/m 实现 - 那里没有多少数据表..
  • 如果它是一个 Web 项目,那么在将结果读入数据读取器的同时保持连接打开有点禁忌
  • DataTables 几乎要求开发人员将业务逻辑放在用户界面层。在业务对象中拥有业务规则区域会吸引编码人员将业务规则放置在适当的位置。
  • 对结果进行单元测试 - 在通过接口定义的自定义类中要容易得多
  • 强类型的属性(而不是针对数据表“字段”的字符串索引)

此外,直接使用 DataTables 意味着将自己绑定到底层数据源及其结构。从可维护性的角度来看,这不是一个好主意。如果您的视图需要的只是一些对象的列表,那么您应该给它(即列表)。

[编辑] - 这是一篇旧文章,但值得加入“辩论”:

在考虑数据集与业务对象时,请记住,使用业务对象设计良好的应用程序将减少未来维护应用程序时的麻烦,从而最终降低支持成本。

http://www.kellermansoftware.com/t-articlebusinessobjects.aspx

于 2011-01-31T10:22:12.847 回答
1

我不建议直接使用 db 。有很好的 ORM:LINQ to SQL、Entity Framework 和 NHibernate。谁需要旧的痛苦数据表?

于 2011-01-31T10:41:22.930 回答