我有一个实体产品,可以用其他同类产品替换或替换它们。在一定程度上。
因此我有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中使用有效负载定义递归多对多关系?
如果有人能对这个问题有所了解,我将不胜感激。我也没有在网上找到其他问题,例如我的问题。这种情况难道比我想象的少吗?
非常感谢!