DataContext具有DbConnection类型的Connection属性,我想知道是否可以重用它。我已经尝试使用它创建一个使用CreateCommand的命令并使用它的阅读器,但我有错误说有一个待处理的事务或类似的东西。
基本上我正试图找出是否有关于重新使用该连接对象的最佳实践或指导。
连接字符串本身并没有真正帮助,因为我无法使用抽象类型创建新的连接对象,我也不希望代码知道特定的提供者类型。
我正在考虑的一种替代方法是让我的DataContext派生类型具有成员,这些成员提供工厂方法以使用相同的连接信息创建新连接。
仅供参考,此调查源于需要通过DataContext调用ad-hoc存储过程,而不是设计时ExecuteMethodCall变种。我不知道ExecuteQuery,现在就足够了。但是对于ExecuteQuery不合适的其他情况,我需要使用连接/命令等进行低级数据访问。
答案 0 :(得分:1)
为什么不转过来,而是通过使用以连接作为参数的构造函数来提供与datacontext的连接?这样您就可以控制何时创建和处置连接,打开和关闭连接,并且可以将它们重用于其他目的,而不必担心L2S datacontext的内部行为......
答案 1 :(得分:0)
我不能肯定地说,但连接是一种连接。在它被关闭(或返回到连接池)之前,它应该是可行的,无论是通过LINQ还是其他方式。