gpt4 book ai didi

nhibernate - 处理 NHibernate 父子集合的最佳实践

转载 作者:行者123 更新时间:2023-12-02 23:26:00 25 4
gpt4 key购买 nike

因此,在一个典型的模型中,您的父级可以有多个子级,而子级只能有一个父级,您如何管理子级的添加。我一直在使用这种方法;

public class Parent
{
public Parent()
{
Children = new List<Child>();
}

public IList<Child> Children
{
get;
private set;
}
}

public class Child
{
public Parent Parent
{
get;
set;
}
}

var child = new Child();
var parent = new Parent();
parent.Children.Add(child);
child.Parent = parent;

问题是,无论在哪里我想添加一个新的 child ,我都必须记住添加对 child 和 parent 的引用,这有点痛苦。我可以向父类添加一个 AddChild 方法,并使其负责添加子级 - 现在的问题是有 2 种方法可以添加子级,即通过 Children 属性和方法。那么这是一个更好的解决方案吗?

public class Parent
{
public Parent()
{
children = new List<Child>();
}

private IList<Child> children
{
get;
private set;
}

public IEnumerable<Child> Children
{
get
{
return children;
}
}

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

是否有关于这方面最佳实践的指南?您会做什么?

最佳答案

这根本不是 NHibernate 问题。

您应该实现 AddChild 方法。这些类负责其一致性,因此它们不应该公开任何不应该可用的内容。例如,(可变的)子列表应该被隐藏。公开 IEnumerable 是个好主意。

您的第二个代码是一个很好的起点。您可能需要更多方法,例如RemoveChild或CoundChildren。

关于nhibernate - 处理 NHibernate 父子集合的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com