0

モデルの詳細(この場合はフランチャイズ)を表示するページがありますが、フランチャイズに関するノートの一覧も表示しています。いずれかのメモを削除する最も良い方法は何ですか?Nhibernate親モデルの子を削除 - MVC3

現在私はフランチャイズモデルのすべての荒れ果てた操作を担当するフランチャイズリポジトリを持っています。重要な機能を追加するためにノートリポジトリを作成するのが最善でしょうか?または、franchiseRepository内で実装するような簡単な方法がありますか(または、srpのようないくつかのdddルールを破ることになりますか?)

public class Parent() 
{ 
    public string name{get; set;} 
    public IList<Note> notes{get;set;} 
    //And so on 
} 
public class Note() 
{ 
    public string content{get; set;} 
    //And so on 
} 

答えて

1

あなたの親はRemoveNote()のようなメソッドを持っている必要があります。これはリストからそのメモを削除します。 マッピングの場合、on-to-manny関係ではcascade = all-delete-orphanを使用し、マッピングではinverse = trueを使用します。そして、あなたはNoteリポジトリを持つべきではありません。

public virtual void RemoveNote(Note note) 
    { 
     if (_notes.Contains(note)) 
     { 
      _notes.Remove(note); 
      note.Parent = null; 
     } 
    } 
+0

あなたが削除したいメモを見つけてからSaveOrUpdate(Model)を見つけるまで、削除ノート(N)は親のすべてのメモを読み込み、再帰的にリストを調べますか?それは正しいと思いますか? – gdp

+0

@geepieはい編集を参照してください –

+0

@Shuhel Ahmed - OKクール - 私はドメインクラスにそのようなメソッドを貼り付けます - これはそれを置くための適切な場所だと思いませんか? – gdp

関連する問題