我一直在研究是否有关于数据表和数据集使用的最佳实践,我还没有找到任何真正的结论性答案。两者都适用于我想做的事情但是没有确凿的答案,这里和所有地方的普遍共识是应该避免使用数据集。
基本上,我想要做的是使用存储过程从数据库中检索数据。每个存储过程都从不同的表中提取数据,并可能执行某些连接。然后以窗体形式显示该数据。用户将使用此数据,然后添加新记录或更新数据库中的现有记录。
我熟悉的一种方法是进行单独的数据库调用,将结果存储在数据表中,然后使用此对象将其显示在屏幕上。这是使用ADO.net完成的。这有效。此外,使用数据集从一个数据库调用(一个存储过程)返回所有这些数据也可以。但显然,这不是理想或最有效的做事方式吗?我对LINQ不太熟悉,但这似乎是另一种检索数据的方法。
我认为这是针对特定问题的广泛问题。虽然目前无法真正使用服务,但理想的解决方案是设计系统,以便我们将来可以使用Web服务。
我觉得我现在正在分析一些事情,而且我很确定在这一切方面我已成功地将自己弄得一团糟。我真的很感激这个问题的评论和想法。
答案 0 :(得分:3)
如果您将来在任何地方都有服务,那么您应立即放弃数据表和数据集并创建业务类(即数据传输对象或DTO)。
如果您有意通过服务移动数据,这是正确的长期实施。
答案 1 :(得分:3)
DataTable(等)当然 有用的一次是编写通用的非模式特定工具(其中查询,因此scheman仅在运行时已知) - ad-hoc报告工具,可能,或类似SSMS。
DataTable也可以方便地提供SqlBulkCopy。
很多人认为,对于其他一切,常规的c#类更可取。当然,我现在很少看到生产代码中的DataTable。但是,它可以工作。
就我个人而言,我喜欢POCO +“dapper”,它可以解决所有绑定工作(包括SPROC),但是对于类型化的类模型很有效,而且没有完整ORM的开销。