我想找到一种方法来控制 EF 的底层数据库连接和事务,以确保我的应用程序在一个事务期间一次只使用一个连接(我需要同时支持 Oracle 和 SQL Server)。
我发现这篇很好的文章附带了很多建议,但是(就像我读过的所有其他文章一样)提出了TransactionScope
. 好吧,如果可能的话,我想远离TransactionScope
……
我可以只用纯DbConnection
&来解决这个DbTransaction
问题吗?或者这根本不可能或错误?
更重要的是,我在这里找到了这篇文章,在部分说明:
“指定您自己的交易”
正如您可以使用连接覆盖默认行为一样,您也可以控制事务功能。如果您明确创建自己的事务,SaveChanges 将不会创建 DbTransaction。不过,您不会创建 System.Common.DbTransaction。相反,在创建自己的事务时,您需要使用 System.Transaction.TransactionScope 对象。
但是没有解释...
我正在使用实体框架 5.0。您能否帮助我理解以便为我的应用程序选择正确的?最好向我展示一些好的使用模式。
提前致谢!
注意:我计划这样做是因为事务升级到 Oracle 数据提供程序的 DTC。