gpt4 book ai didi

asp.net - 如何在 ASP.NET MVC 身份 2 中使用事务?

转载 作者:行者123 更新时间:2023-12-04 11:37:06 25 4
gpt4 key购买 nike

在我的 ASP.NET MVC5 Identity 2 应用程序中尝试使用事务但它不起作用。请参阅下面的代码事务不起作用。如果 var saveteacher = _teacherService.Create(aTeacher);未成功插入,则 AspNetUsers 未从数据库回滚。

代码:

using (var  dataContext = new SchoolMSDbContext())
{
using (var trans = dataContext.Database.BeginTransaction(IsolationLevel.ReadCommitted))
{
try
{
var adminresult =await UserManager.CreateAsync(user, teacherViewModel.Password);
if (adminresult.Succeeded)
{
aTeacher.Id = user.Id;
var saveteacher = _teacherService.Create(aTeacher);
}
else
{
trans.Rollback();
ModelState.AddModelError("", adminresult.Errors.First());
return View();
}
trans.Commit();
}
catch (Exception ex)
{
trans.Rollback();
Console.WriteLine(ex.InnerException);
}
}
}

最佳答案

我认为问题可能出在异步的东西上。

尝试创建这样的交易:

TransactionScope transaction = new TransactionScope(System.Transactions.TransactionScopeAsyncFlowOption.Enabled);

(您必须将 System.Transactions )添加到引用中。

要提交事务,请转到 transaction.Complete()回滚做 transaction.Dispose() .

关于asp.net - 如何在 ASP.NET MVC 身份 2 中使用事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28188476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com