在ASP.NET身份和实体框架中删除用户

时间:2018-08-09 12:45:50

标签: entity-framework asp.net-web-api asp.net-identity

我需要删除用户,他的角色和该用户的UserTitle(多对多)实体。我想在一个事务中执行此操作,将数据库上下文和userManager注入到控制器中。在这种情况下我需要使用SaveChangesAsync还是transaction.Commit足以将更改推送到数据库?

var userTitles = db.UserTitles
    .Where(ut => ut.UserId == user.Id);

using (var transaction = db.Database.BeginTransaction())
{
    foreach (var userTitle in userTitles.ToList())
        db.UserTitles.Remove(userTitle);

    foreach (var item in rolesForUser.ToList())
        await userManager.RemoveFromRoleAsync(user, item);

    await userManager.DeleteAsync(user);

    transaction.Commit();
    await db.SaveChangesAsync();
}

0 个答案:

没有答案