用户 / \ / \ MTO MTO / \ / \ 产品----MTM----标签
我想知道是否有任何关于如何使用实体创建这样的模式的文档。我一直想知道哪个实体应该对关系中的什么负责。
例如:
假设我想为产品添加标签。我有这样的方法
产品实体:
public virtual void AddTag(Tag tag)
{
this.Tags.Add(tag); // IList<Tag> Tags
tag.AddProduct(this);
}
首先,这会将标签对象添加到标签列表中。然后该标签对象将“这个”产品添加到它自己的产品列表中。
到现在为止还挺好。
但是,如果我想将产品添加到标签中怎么办。我有这样的方法
标签实体:
public virtual void AddProduct(Product product)
{
this.Products.Add(product); // IList<Product> Products
// product.AddTag(this);
}
所以首先我将产品对象添加到我的标签对象中的产品列表中。然后我可以将“this”标签添加到产品中,但这就是我卡住的地方。被注释的方法会引发 stackoverflow 错误,因为它会回调调用 AddTag 的 AddProduct 等等。
也不确定我的架构是否真的正确。当我想查看用户拥有哪些标签时,从用户到标签的 MTO 让我很容易。
所以我想知道是否有人能指出我正确的方向?
提前致谢,
泡菜