如何用Entity Framework(EF6)删除Asp.Net MVC 5中的ApplicationUser?
问题描述:
我很努力地删除我的应用程序中的ApplicationUser。我不介意用硬删除,但这给了我很多挑战。用户可以创建其他用户可以评论的帖子。如果其他用户对用户的帖子发表了评论,则该用户不能被硬删除,因为删除尝试级联到该帖子(被现有评论阻止)。如何用Entity Framework(EF6)删除Asp.Net MVC 5中的ApplicationUser?
我也可以使用软删除方法,但这似乎是一个噩梦来处理大型应用程序。我发现我必须添加if (!user.IsDeleted){...}
围绕提及用户的任何内容(评论和帖子作者参考,登录,注册和帐户/管理控制器中的几乎所有内容),并且必须考虑在将来添加的代码中添加支票。
我试过寻找处理用户删除的已建立的方法,但我似乎无法找到任何(除了像“如何添加”IsDelete“属性到您的用户,这几乎没有进入快速文章足够详细的含义)那么是否有正确的方法来处理用户删除?似乎最好的办法是开始让我的手脏乱与级联,但我不知道从哪里开始
答
我强烈建议,看看哪些已经在ASP.NET样板。它实现了软删除方法是免费和开源。
软删除过滤器用于在查询数据库时自动过滤(从 中提取结果)删除的实体。如果一个实体应该软删除 ,它必须实现ISoftDelete接口,它定义了只有IsDeleted属性的 。
例:
public class Person : Entity, ISoftDelete
{
public virtual string Name { get; set; }
public virtual bool IsDeleted { get; set; }
}
这里是链接:ISoftDelete
要显示有关用户时,会显示一则讯息是什么? –
“删除”代替作者。帖子内容仍然可以显示 – NicholasFolk
所以我想他们应该实际上被检索,但只显示别名而不是他们的名字。 –