C# 将命令对象/读取器传递给函数是个好主意吗?
我在使用.Net 4 C的MySql数据库的连接池中遇到了一些无法解释的连接不足的错误。到目前为止,我试图找到原因的所有尝试都是徒劳的。现在我也遇到了这样一种情况,表上的锁很长一段时间都没有被清除,即使我所做的只是从表中读取操作 我的代码看起来很好,我已经使用了块将所有的读卡器和连接放在一起。唯一的异常是我一直将MySqlCommand和MySqlDataReader对象作为参数传递给使用它们的函数 这对我来说似乎不是个坏主意,因为它避免了一些重复!。但由于我找不到任何其他解释,我不得不怀疑这是造成问题的原因C# 将命令对象/读取器传递给函数是个好主意吗?,c#,.net,mysql,asp.net-mvc,C#,.net,Mysql,Asp.net Mvc,我在使用.Net 4 C的MySql数据库的连接池中遇到了一些无法解释的连接不足的错误。到目前为止,我试图找到原因的所有尝试都是徒劳的。现在我也遇到了这样一种情况,表上的锁很长一段时间都没有被清除,即使我所做的只是从表中读取操作 我的代码看起来很好,我已经使用了块将所有的读卡器和连接放在一起。唯一的异常是我一直将MySqlCommand和MySqlDataReader对象作为参数传递给使用它们的函数 这对我来说似乎不是个坏主意,因为它避免了一些重复!。但由于我找不到任何其他解释,我不得不怀疑这是
您认为如何?不,传递对连接、命令和数据读取器的引用不是问题。您可以随意抛出引用,只要对代码的哪一部分处理它们有明确的责任
你没说要处理命令对象。它们有一个Dispose方法,也应该安全地进行处理。正如Guffa所说,传递对这些实例的引用没有任何技术问题。但是,更好的做法是在进行数据访问的方法中填充DTO,并将其传递给链中的下一个方法,或者返回它。这将减少您的复杂性并减轻困惑。您没有给我们提供太多的信息。