0

比方说:

public class Parent
{
    public virtual IList<Child> Childs { get; set; }

    public void AddChild(long childId)
    {
        // Link existing child to parent.
    }
}

我正在尝试使用 NHibernate 实现 DDD,所以我想知道如何将子项链接到父项而不从数据库中检索它。

4

1 回答 1

0

你不能。面向对象的方法是:

public class Parent
{
    public virtual IList<Child> Childs { get; set; }

    public void AddChild(Child child)
    {
        child.Parent = this;
        Childs.Add(child);
    }
}

调用此方法的代码可以添加一个孩子而不使用检索它ISession.Load

var child = session.Load<Child>(childId);
parent.AddChild(child);

Load 将创建一个带有 ID 集的动态代理。请注意,如果您访问它的任何其他属性,则将加载子项,并且访问父项的 Childs 集合将导致它被加载。

于 2013-04-06T15:47:55.697 回答