In My ASP.NET MVC5 Identity 2 Applicazione che tenta di utilizzare le transazioni ma non funziona. Si prega di consultare il codice sottostante le transazioni non funzionanti.Se var saveteacher = _teacherService.Create(aTeacher);
non si inserisce correttamente allora AspNetUsers non esegue il rollback dal database.Come utilizzare le transazioni nell'identità ASP.NET MVC 2?
Codice:
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);
}
}
}
Sembra legittimo. Hai fatto il codice nel debugger? 'Trans.Rollback()' ha mai chiamato un errore? – trailmax
no :(ma catch throw Eccezione ex {"Convalida non riuscita per una o più entità Vedere la proprietà 'EntityValidationErrors' per ulteriori dettagli."} Che ho fatto per testare –
da dove viene generata? Hai 3 posizioni nel codice che può lanciare questa eccezione, tutti sono racchiusi in 'try-catch', ma si esegue il' rollback' nel catch.È questo rollback non eseguito? – trailmax