使用SqlConnection、SqlCommand和SqlDataReader做数据访问层是否可行?

3

我知道现在有很多可以直接使用的东西,但是如果你想完全控制数据库请求/查询,并获得最佳性能,我认为这是一个不错的选择。此外,由于ADO.NET自动为SqlConnection进行连接池管理,你觉得呢?

7个回答

5

当然可以。如果您想要极致的性能,那么这是最快的选择之一。我认为这仍然不错。

事实上,我正在开发一个报告系统,它使用SQL、DataReaders和SQLConnections,因为它只运行SQL。OLAP立方体并不是OR映射器的最佳候选对象。


3

如果您真的需要完全控制所生成的SQL查询,并且正在寻找最佳性能,那么这是正确的方法。但有时候,最佳性能的代价是可读性和可维护性较差的代码。如果情况是这样的,您可能需要做出决策,是否值得支付这个代价。


2

我认为这完全没有问题。对于任何给定的项目,只有你自己能够确定最佳工具集,并且只要你正确使用它们,遵循最佳实践,那就使用你认为最好的工具。

个人而言,我更喜欢使用你提到的工具,因为我喜欢更精细的控制。我仅在非常简单的任务中使用拖放组件,嘿,现在还有动态数据可用于执行这些任务。


2

是的,你说得对,它具有最佳性能,但在做出决策之前,您必须考虑所有要点,有ORM工具可以控制您的所有数据访问层,而且它们的表现也不错。


2
如果你需要最佳性能,那么使用 ADO.NET 是可以的。它能够给你更多的控制和更好的性能。顺便提一下,这里有一篇关于在使用 ADO.NET 时应该考虑哪些因素会影响性能的文章:How Data Access Code Affects Database Performance

1

是的,我认为这完全没问题!我个人喜欢拥有完全控制权,可以精确定义数据库交互方式,并让您完全掌控性能调整/优化。

只想补充一点,当然SqlDataAdapters和DataTables也可能有它们的用处,特别是如果想要传递离线数据。


1

您可能还想了解Enterprise Library。它使用基本的ADO.Net对象,同时最大程度地减少了在代码中进行这些调用所需的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接