我正在使用一个遗留应用程序,该应用程序通过System.Data.OracleClient
使用OracleTransaction
如下方式访问 Oracle 数据库:
Public Sub ExecuteOracleSql(ByVal sql As String)
Dim oCmd As New OracleCommand(sql, _dbConnection)
Try
oCmd.Transaction = _transaction 'OracleTransaction
oCmd.ExecuteNonQuery()
Finally
oCmd.Dispose()
End Try
End Sub
从那以后,我们决定所有新的开发都将通过实体框架进行,但是我们希望加入到遗留代码正在使用的同一事务中。
经过一些研究,我发现了该ObjectContext.Connection.EnlistTransaction()
方法,但是它接受 aSystem.Transaction.Transaction
而不是OracleTransaction
上面的 a 。
因此是否可以在遗留代码和 EF 之间共享事务?