asp.net-identity交易问题
发布时间:2020-05-23 02:36:21 所属栏目: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 – MVVM ViewModel vs. MVC ViewModel
- asp.net – 如何减缓黑客的速度
- asp.net-mvc – 使用Angular VS Razor进行ASP.Net MVC验证
- ASP.Net – App_DataApp_Code文件夹?
- asp.net-mvc – 使用jquery进行模型绑定ajax序列化不起作用
- 解决asp.net Sharepoint无法连接发布自定义字符串处理程序,
- asp.net-mvc – 如何在ASP.Net MVC 3中可选地呈现一个部分?
- asp.net-mvc – 关闭剃刀中的HTML编码
- asp.net-mvc-3 – 自定义ActionInvoker与MVC 3中ActionFilt
- .NET的标记SO如何在飞行中呈现?
推荐文章
站长推荐
- asp.net – 网页中的电子签名[已关闭]
- asp.net – 如何使用webgrease?
- asp.net-mvc – asp.mvc中渲染的区别是什么
- asp.net-mvc – Chrome34忽略域名为“.cloudapp.
- asp.net-mvc – 更改ASP.NET MVC 3中的默认Model
- razor – ASP.NET MVC 4 – for循环帖子模型集合
- asp.net – 为什么DataBind()方法是必要的?
- asp.net-mvc – 其中Simple Injector等效于Struc
- asp.net-mvc-4 – 在asp.net mvc 4模型中更改验证
- asp.net – 如何在Firefox上命名文件以供下载?
热点阅读
