我有以下情景:
在InvokeInTransaction调用中,会对LTS存储库进行多个调用以执行各种数据更改。问题在于,在存储库内部还有另一个。
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted },EnterpriseServicesInteropOption.Automatic))
{
using (DataContext db = new DataContext())
{
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
bool outcome = InvokeInTransaction<string, object>(inputDict, out outputDict);
db.Transaction.Commit();
}
catch (Exception ex)
{
response.Outcome = BusinessEntityResponse.SystemError;
db.Transaction.Rollback();
}
}
}
在InvokeInTransaction调用中,会对LTS存储库进行多个调用以执行各种数据更改。问题在于,在存储库内部还有另一个。
using (var db = new DataContext())
这里面是持久化代码。检查存储库中的上下文会显示事务为 null,我怀疑“内部”上下文没有知道环境事务的存在。这可行吗?我知道 EF 在后台管理这个,但约束是不能更改存储库代码。需要帮助吗?