У меня есть продукт 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?
Буду признателен, если кто-нибудь сможет пролить немного света на этот вопрос. Также я не нашел других вопросов, как мой в сети. Является ли ситуация более редкой, чем я думал?
Большое спасибо!