【问题标题】:UserProfile table to delete user删除用户的 UserProfile 表
【发布时间】:2012-10-19 11:53:24
【问题描述】:

我正在使用 MVC4 和 VS_2012。我想删除一个用户我的管理面板。 我一般都是这样删除的;

UsersContext dcUser = new UsersContext();

if (userId.HasValue)
 {
     var userToDelete = (from u in dcUser.UserProfiles
                         where u.UserId == userId
                         select u).Single();

  //   dcUser.UserProfiles.DeleteOnSubmit(userToDelete);
 //   dcUser.SubmitChanges();
  }

但在这种情况下,我无法访问 DeleteOnSubmit 和 SubmitChanges。 有什么办法可以删除用户?

【问题讨论】:

    标签: c# asp.net asp.net-mvc-4


    【解决方案1】:

    试试这样:

    dcUser.Entry<string>(userToDelete).State = System.Data.EntityState.Deleted;
    

    【讨论】:

    • dcUser.Entry(userToDelete).State = System.Data.EntityState.Deleted;我用过但是没用
    • 通过说它不起作用您的意思是您遇到了异常或实体没有被删除?设置状态后,您是否在上下文中调用了.SaveChanges() 方法?
    • 是的,我使用了 SaveChages() 但是否有异常:“DBUpdateException 未被用户代码处理”
    • 有关于这个异常的一些细节吗?你检查过 InnerException 吗?
    • DELETE 语句与 REFERENCE 约束 \"fk_UserId\" 冲突。数据库 \"XXX\"、表 \"dbo.webpages_UsersInRoles\"、列 'UserId' 中发生冲突。\r\n语句已终止。我想我必须删除 pages_UsersInRoles 表的行。
    【解决方案2】:

    你可以试试这个:

    [Authorize(Roles = "Admin")]
    [HttpPost]
    public ActionResult DeleteUser(int id)
    {
        var tmpuser = "";
        var ctx = new UsersContext();
        using (ctx)
        {
            var firstOrDefault   = ctx.UserProfiles.FirstOrDefault(us => us.UserId==id);
            if (firstOrDefault != null)
                tmpuser = firstOrDefault.UserName;
        }
    
        string[] allRoles = Roles.GetRolesForUser(tmpuser);
        Roles.RemoveUserFromRoles(tmpuser,allRoles);
    
        ((SimpleMembershipProvider)Membership.Provider).DeleteAccount(tmpuser);
        Membership.Provider.DeleteUser(tmpuser, true);
        Membership.DeleteUser(tmpuser, true);
    
        ctx = new UsersContext();
    
        return View(ctx.UserProfiles.OrderBy(user => user.UserName).ToList());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2022-06-25
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2021-10-19
      相关资源
      最近更新 更多