考虑我需要 ProductPartRecord 类型和 ManufacturerPartRecord 类型的情况。在第一种类型中,我需要知道这部分的制造商是谁,因此使用 ManufacturerPartRecord 类型的属性会很方便。在第二种类型中,我想知道这个制造商生产的产品,因此拥有 IList 类型的属性会很方便。
显然这是一对多的关系。将记录放入记录中是一种不好的做法吗?这甚至可能吗,因为我在实施它时遇到了麻烦?
考虑我需要 ProductPartRecord 类型和 ManufacturerPartRecord 类型的情况。在第一种类型中,我需要知道这部分的制造商是谁,因此使用 ManufacturerPartRecord 类型的属性会很方便。在第二种类型中,我想知道这个制造商生产的产品,因此拥有 IList 类型的属性会很方便。
显然这是一对多的关系。将记录放入记录中是一种不好的做法吗?这甚至可能吗,因为我在实施它时遇到了麻烦?
有可能的。这是如何做到的:
ProductPartRecord
类型int
,名称应ManufacturerPartRecord_Id
假定Id
为表中主键的名称ManufacturerPartRecord
。SchemaBuilder.CreateForeignKey("Product_Manufacturer", "ProductPartRecord", new[] { "ManufacturerPartRecord_Id" }, "ManufacturerPartRecord", new[] { "Id" });
ManufacturerPartRecord
模型类中,您应该添加一个用于产品列表的新属性 -public virtual IList<ProductPartRecord> ProductPartRecords { get; set; }
ProductPartRecord
模型类中,您应该添加一个用于获取制造商的新属性 -public virtual ManufacturerPartRecord ManufacturerPartRecord { get; set; }
现在应该全部设置为自动为您的产品获取制造商,反之亦然。
如果您不希望这种情况自动发生,您应该创建一个服务类,该类将获取IRepository<ManufacturerPartRecord>
或IRepository<ProductPartRecord>
通过构造函数注入并自己处理获取和保存列表。