2016-11-20 69 views
2

我很努力地刪除我的應用程序中的ApplicationUser。我不介意用硬刪除,但這給了我很多挑戰。用戶可以創建其他用戶可以評論的帖子。如果其他用戶對用戶的帖子發表了評論,則該用戶不能被硬刪除,因爲刪除嘗試級聯到該帖子(被現有評論阻止)。如何用Entity Framework(EF6)刪除Asp.Net MVC 5中的ApplicationUser?

我也可以使用軟刪除方法,但這似乎是一個噩夢來處理大型應用程序。我發現我必須添加if (!user.IsDeleted){...}圍繞提及用戶的任何內容(評論和帖子作者參考,登錄,註冊和帳戶/管理控制器中的幾乎所有內容),並且必須考慮在將來添加的代碼中添加支票。

我試過尋找處理用戶刪除的已建立的方法,但我似乎無法找到任何(除了像「如何添加」IsDelete「屬性到您的用戶,這幾乎沒有進入快速文章足夠詳細的含義)那麼是否有正確的方法來處理用戶刪除?似乎最好的辦法是開始讓我的手髒亂與級聯,但我不知道從哪裏開始

+0

要顯示有關用戶時,會顯示一則訊息是什麼? –

+0

「刪除」代替作者。帖子內容仍然可以顯示 – NicholasFolk

+0

所以我想他們應該實際上被檢索,但只顯示別名而不是他們的名字。 –

回答

0

我強烈建議,看看哪些已經在ASP.NET樣板。它實現了軟刪除方法是免費和開源

軟刪除過濾器用於在查詢數據庫時自動過濾(從 中提取結果)刪除的實體。如果一個實體應該軟刪除 ,它必須實現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