自参照模型-具有产品列表的产品

时间:2018-10-07 10:30:03

标签: c# asp.net-mvc

当前正在使用一个Web api来处理客户(即壁橱)的产品订购。

在价格,尺寸和类别等属性中,每个产品都有其所属的产品列表以及构成该特定产品的另一个产品列表。

我将其视为一个自引用模型,因此为模型类编写了该初稿

public class Product
    {
        public int ID { get; set; }
        public string Name{ get; set; }
        public double Price { get; set; }
        public double Height {get ; set; }
        public double Width {get ; set; }
        public double Depth {get ; set; }
        public virtual ICollection<Product> Parts{ get; set; }
        public virtual ICollection<Product> PartIn{ get; set; }
    }

这是正确的方法吗?特别是考虑到以后我需要打这些电话

api/Product/{id}/Parts
api/Product/{id}/PartIn

返回一种产品的所有部分及其所在的产品。

1 个答案:

答案 0 :(得分:0)

这可能是一个好方法。我看到的唯一问题是,通过存储父母和孩子,您拥有了多余的信息。这将使更新更加困难。例如,如果要替换子条目,则必须确保在旧的和新的子产品中都更新相应的父条目。

另一种选择是仅存储子产品或父产品的列表。这意味着,如果您只为孩子们打str,则需要对所有产品进行搜索以获取给定产品的父母。