将同一个SqlConnection传递给同一个类中的>1方法

本文关键字:同一个 1方法 SqlConnection | 更新日期: 2023-09-27 18:04:33

我有一个侧重于数据库操作的类(例如写/读等)。是否有一种优雅的方式将相同的SqlConnection传递给每个方法,而不是在每个参数中创建一个新对象作为局部变量?

我记得在这个网站上看到过一个使用lambda表达式的例子。那是理想的,但是找不到。

谢谢

将同一个SqlConnection传递给同一个类中的>1方法

恕我直言,在类之间传递SqlConnection对象绝对是一个坏主意。

在使用之前简单地创建一个新的连接对象要好得多。换句话说,在进行数据库调用的每个方法中。SqlConnection是一个IDisposable类,用于处理非托管资源。如果有什么东西被冲洗了,那么你就有可能出现连接泄漏。

此外,由于连接池是在比代码低得多的层处理的,因此创建和处置这些连接对象是一个非常快的操作。这意味着通过传递只获得的好处是每个执行数据访问的方法少了1行代码;而缺点是可能无法在不关闭应用程序的情况下执行任何额外的SQL调用。如果这是一个web应用程序,那么这是一个完全可怕的决定,因为它可能会关闭整个网站。

也就是说,传递连接字符串是可以的,尽管这通常是通过配置文件加载的。

您也可以使用可选参数,如果没有传入连接且参数值为null,则创建一个,否则您只需使用传入的参数