Рекурсивное отношение «многие ко многим» с полезной нагрузкой в ​​Code First - PullRequest
0 голосов
/ 07 января 2019

У меня есть продукт Entity, который можно заменить другими в своем роде, а также заменить их. В определенной степени.

Итак, у меня есть 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. Последние два мне не нужны. Я не знаю, почему они там. Как определить рекурсивное отношение «многие ко многим» с полезной нагрузкой в ​​Code First?

Буду признателен, если кто-нибудь сможет пролить немного света на этот вопрос. Также я не нашел других вопросов, как мой в сети. Является ли ситуация более редкой, чем я думал?

Большое спасибо!

...