我有一张桌子,用来存放一些产品。
ProductA
ProductB
ProductC
其中一个要求是一种产品可以属于另一种
ProductA
ProductD -> ProductA
ProductE -> ProductA
ProductB
ProductF -> ProductB
ProductC
如您所见,属于另一个产品的产品必须位于它的正下方。所有数据必须属于一个列表(没有嵌套集合),因为我只需要在一个网格中显示数据。
如果我引入一个新的属性 ReferenceProductId,即指向另一个产品,那么我解决了“归属”的问题,但我无法找到如何对它们进行排序的方法。最简单的方法是,如果我可以说 ProductA 属于 ProductA,但如果我没记错的话,那是不可能的。此外,当我将一种产品分配给另一种产品时,我不能这样做:
product.ReferenceProductId = anotherProduct.Id
我需要自己分配一个引用,因为我正在使用身份主键,所以新记录的 Id 将为 0。
product.ReferenceProduct = anotherProduct;
你在这里有什么想法?我可以让它正确保存数据,但我不能让它以上述排序顺序加载它们。