![]() |
1
1
我一直在研究LinqToSQL的类似问题——最初我们的解决方案是在每个请求中使用相同的连接。Rick Strahl对此做了一系列值得一看的博客文章。 在我们的解决方案中,DataContext构造函数具有从工厂检索连接的重载构造函数(如果不存在连接,则传递的连接存储在线程上)。
这在WCF场景中似乎可以正常工作,连接工厂可以从serviceModel.operationContext.items集合存储/检索,并且(更重要的是)订阅OperationComplete事件,以便在完成所有操作后关闭/释放线程上的连接。 我发现我们还需要扩展连接对象,以便在释放所属的DataContext时(例如,在每个操作范围完成之后),您可以防止内部连接的自动关闭/双封。 我现在看的是非WCF场景…但它不漂亮。我们也没有wcf上下文中的“operationCompleted”事件触发器。 |
![]() |
2
2
我不确定这是否会将第二个连接登记到事务中,但您可以尝试取消所选的TransactionScope:
|
![]() |
Van Thoai Nguyen · MSSQL如何正确锁定行并插入? 8 年前 |
![]() |
bilpor · MSMQ忽略事务作用域 9 年前 |
![]() |
Aleksandar · 获取事务的开始和结束时间-SQL Server 10 年前 |