2016-11-20 14 views
2

私はアプリケーションでApplicationUserを削除するのに苦労しています。私は厳しい削除をしても構いませんが、それは私に大きな困難をもたらしました。ユーザーは、他のユーザーがコメントできる投稿を作成することができます。他のユーザーがユーザーの投稿にコメントした場合、そのユーザーが投稿をカスケードしようとしているため(既存のコメントによってブロックされているため)、ユーザーを厳重に削除することはできません。Entity Framework(EF6)でAsp.Net MVC 5のApplicationUserを削除するにはどうすればよいですか?

私はソフト削除の方法でも大丈夫ですが、これは大規模なアプリケーションで対処するのは悪夢のようです。私はif (!user.IsDeleted){...}をコメント(コメントと投稿者の参照、ログイン、登録、そしてアカウント/管理コントローラのほとんどすべて)について追加する必要があることを発見し、今後すべての追加でチェックを追加することを検討する必要があります。

私はユーザーの削除を処理する確立された方法を探してみましたが、「IsDelete」プロパティをユーザーに追加する方法などのクイック記事以外は見つからない私の手をカスケードで汚れさせるのが最善の方法だと思われますが、どこから始めたらいいのかわかりません。

+0

? –

+0

は、著者の代わりに「削除」されています。投稿の内容は引き続き表示することができます – NicholasFolk

+0

実際に検索する必要がありますが、名前以外のものを表示するだけです。 –

答えて

0

私は、ユーザーの削除を処理する適切な方法がありますか? ASP.NETボイラープレートで実装されているソフト削除の方法をお勧めします。フリーおよびオープンソース

データベースを照会中に、削除されたエンティティを自動的にフィルタリング( の結果から抽出)するには、ソフト削除フィルタが使用されます。エンティティ をソフト削除する必要がある場合は、 IsDeletedプロパティのみを定義するISoftDeleteインターフェイスを実装する必要があります。

例:ここでは

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

    public virtual bool IsDeleted { get; set; } 
} 

はリンクです:ISoftDelete

Source Code on Github

彼らのポストの1が表示されているときに、ユーザーに関する見せたい何

ASP.NET Boilerplate Documentation

関連する問題