我正在努力在我的应用程序中删除ApplicationUser。我不介意用硬删除,但这给了我很多挑战。用户可以创建其他用户可以评论的帖子。如果其他用户对用户的帖子进行了评论,则无法将用户硬删除,因为删除尝试级联到帖子(由现有评论阻止)。
我也可以使用软删除方法,但这似乎是在大型应用程序中处理的噩梦。我发现我必须在提及用户的任何内容周围添加if (!user.IsDeleted){...}
(评论和帖子后作者参考,登录,注册以及帐户/管理控制器中的几乎所有内容),并且必须考虑在以后的所有添加中添加检查代码。
我已经尝试过寻找处理用户删除的既定方法,但我似乎无法找到任何内容(除了快速文章,如“如何添加”IsDelete“属性给您的用户,这不是足够的详细的影响)。那么有没有一种正确的方法来处理用户删除?看起来最好的方法是开始用手工打动我的手脏,但我不确定从哪里开始。
答案 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