如何使用Entity Framework(EF6)删除Asp.Net MVC 5中的ApplicationUser?

时间:2016-11-20 20:20:37

标签: c# asp.net asp.net-mvc entity-framework

我正在努力在我的应用程序中删除ApplicationUser。我不介意用硬删除,但这给了我很多挑战。用户可以创建其他用户可以评论的帖子。如果其他用户对用户的帖子进行了评论,则无法将用户硬删除,因为删除尝试级联到帖子(由现有评论阻止)。

我也可以使用软删除方法,但这似乎是在大型应用程序中处理的噩梦。我发现我必须在提及用户的任何内容周围添加if (!user.IsDeleted){...}(评论和帖子后作者参考,登录,注册以及帐户/管理控制器中的几乎所有内容),并且必须考虑在以后的所有添加中添加检查代码。

我已经尝试过寻找处理用户删除的既定方法,但我似乎无法找到任何内容(除了快速文章,如“如何添加”IsDelete“属性给您的用户,这不是足够的详细的影响)。那么有没有一种正确的方法来处理用户删除?看起来最好的方法是开始用手工打动我的手脏,但我不确定从哪里开始。

1 个答案:

答案 0 :(得分:0)

我强烈建议您看一下在 ASP.NET Boilerplate 上实现的软删除方法。它是 Free和Opensource

  

软删除过滤器用于自动过滤(从中提取)   结果)查询数据库时删除了实体。如果一个实体应该   被软删除,它必须实现定义的ISoftDelete接口   只有IsDeleted属性。

前:

public class Person : Entity, ISoftDelete
{
    public virtual string Name { get; set; }

    public virtual bool IsDeleted { get; set; }
}

以下是链接:ISoftDelete

Source Code on Github

ASP.NET Boilerplate Documentation