asp.net-identity交易问题
发布时间:2020-12-15 19:49:14 所属栏目:asp.Net 来源:网络整理
导读:我想在同一个事务中创建一个具有角色的用户,但我对实现有一个问题.为了在事务中使用userStore并让它不自动保存更改并忽略我的事务,我必须关闭AutoSaveChanges.这使它等到我调用保存更改.这工作正常,但因为当我调用manager.Create时,用户现在不会返回userId,
我想在同一个事务中创建一个具有角色的用户,但我对实现有一个问题.为了在事务中使用userStore并让它不自动保存更改并忽略我的事务,我必须关闭AutoSaveChanges.这使它等到我调用保存更改.这工作正常,但因为当我调用manager.Create时,用户现在不会返回userId,因为这是关闭我没有ID传递到userManager.AddToRole.有没有办法将我想要创建的用户添加到同一事务中的角色?
解决方法
如果您手动启动交易,然后提交,交易中写入数据库的所有内容都将保留在您的交易中.如果你愿意,你可以回滚.
做那样的事情: var dbContext = // get instance of your ApplicationDbContext var userManager = // get instance of your ApplicationUserManager using (var transaction = dbContext.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { var user = // crate your ApplicationUser var userCreateResult = await userManger.CreateAsync(user,password); if(!userCreateResult.Succeeded) { // list of errors in userCreateResult.Errors transaction.Rollback(); return userCreateResult.Errors; } // new Guid for user now saved to user.Id property var userId = user.Id; var addToRoleresult = await userManager.AddToRoleAsync(user.Id,"My Role Name"); if(!addToRoleresult.Succeeded) { // deal with errors transaction.Rollback(); return addToRoleresult.Errors; } // if we got here,everything worked fine,commit transaction transaction.Commit(); } catch (Exception exception) { transaction.Rollback(); // log your exception throw; } } 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC编辑器 – 模板/ UIHint与参数
- ASP.NET本地化与单数和复数
- asp.net-mvc – MVC 4 – Ajax – 将一个局部视图替换为另一
- asp.net-mvc-4 – 禁止从地址栏调用操作方法
- asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分
- asp.net-mvc – ASPNET MVC中的Modelbinding数据库实体
- ASP.Net会员登录问题
- ASP.NET MVC3中基于权限的授权
- 为什么在ASP .Net MVC应用程序中使用SignalR 2.x库的HTTPCo
- asp.net – 在DotNetNuke中使用jQuery UI datepicker而不是
推荐文章
站长推荐
- ASP.NET Web应用程序死锁 – 认为它是由SQL Serv
- ASP.NET网站 – > WCF服务 – > WCF服务,一路冒充
- asp.net – Googlebot导致.NET System.Web.HttpE
- asp.net-mvc – ServiceStack和MVC4没有连线
- asp.net-mvc – EF上下文管理
- ASP.NET MVC 3:在发送HTTP标头后,服务器无法追加
- asp.net-mvc – 使用多值键创建RouteValueDictio
- .net – 不能使用moles来模拟MVC框架
- asp.net – 如何添加.aspx页面到现有的MVC 4项目
- asp.net-mvc – 在我正在运行的Visual Studio 20
热点阅读