Nhibernate删除父模型的子项 - MVC3

时间:2011-06-22 12:24:39

标签: nhibernate asp.net-mvc-3 fluent-nhibernate repository-pattern

我有一个页面显示模型详细信息(在本例中为特许经营),但也显示有关特许经营权的说明的表格列表。删除其中一个音符的最佳方法是什么?

目前我有一个franchiseRepository,它负责特许经营模式的所有crud操作。我是否最好创建一个便笺存储库以添加crud功能?或者是否有一种更简单的方法,比如在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 个答案:

答案 0 :(得分:1)

你的父母应该有像RemoveNote()这样的方法,它会从列表中删除注释。 在on到manny关系上使用cascade = all-delete-orphan,在映射时使用inverse = true。你不应该有Note存储库。

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