Code First中与有效负载的递归多对多关系

时间:2019-01-07 07:00:48

标签: c# asp.net-mvc entity-framework-6 many-to-many recursive-datastructures

我有一个实体产品,可以用其他同类产品替换或替换它们。在一定程度上。

因此我有Product *....<substitutes(degree)>....* Product(一个产品a替代许多其他产品{a'1,a'2,a'3,...}。一个产品b可以被许多其他产品替代乘积{b'1,b'2,b'3,...})。我似乎无法使用EF 6 Code First使该构造工作。

public class Product {
    public long Id;
    public virtual ICollection<Replacement> Replacements { get; set; }
    public virtual ICollection<Replacement> Originals { get; set; }
}

// Class models the m-n-relation with payload.
public class Replacement {
    public long OriginalId { get; set; }
    public long ReplacementId { get; set; }
    [ForeignKey("OriginalId")]
    public virtual Product Original { get; set; }
    [ForeignKey("ReplacementId")]
    public virtual Product Replacements { get; set; }

    public byte Degree { get; set; }
}

这给了我一个带有ReplacementId,OriginalId,Product_Id和Product_Id1的表Replacements。我不需要后两个。我不知道他们为什么在那里。您如何在Code First中使用有效负载定义递归多对多关系?

如果有人能对这个问题有所了解,我将不胜感激。我也没有在网上找到其他问题,例如我的问题。这种情况难道比我想象的少吗?

非常感谢!

0 个答案:

没有答案