ADO.NET和实体框架事务的混合

时间:2013-10-31 17:25:45

标签: c# entity-framework ado.net transactions transactionscope

我们需要一些帮助,我们一直在努力管理它,它根本就没有用。基本上我们有一个使用实体框架和ADO.NET作为混合的网站,我们这样做是因为一些选择根本不适用于我们使用发布结构获取数据的方式,并且使用实体框架进行一些保存是不可能的或采取用选择和操作的数据量保存的分钟数。

在请求开始时,我们有一个连接提供程序,它尝试管理连接,并为ado.net读取提供独立的SqlConnection,或者为EF和任何可能执行的ado.net sprocs提供单个连接对象更新后,我们可以调用提交事务范围的保存更改。

不幸的是,这根本不起作用,我们希望避免升级到MSDTC,但如果没有其他方式,我们会忍受它。问题是我们应该在请求开始时创建单个sqlconnection并与所有内容共享它,还是我们应该为所有内容单独创建一个SqlConnection对象并使用事务范围并让它做它所需要的甚至我们升级到MSDTC

我们看到的一些错误是:

- Cannot promote the transaction to a distributed transaction because there is an active save point in this transaction.
- Cannot use SAVE TRANSACTION within a distributed transaction.
- The transaction has aborted.
- The operation is not valid for the state of the transaction.

我们也有超时的情况,我认为独立连接试图从参与交易的表中进行选择,但使用不在交易中的连接。

我很感激这里的任何建议,因为我们尝试过的只是不起作用。

0 个答案:

没有答案