Имеем сущность продукт (изделие). В это изделие могут вставляться дополнительные модули(а могут и не вставляться) которые и сами по себе являются продуктами(изделиями). Так же сам продукт может быть вставлен в другое изделие :
public class Product : INotifyPropertyChanged
{
public int ProductId { get; set; }
/// <summary>
/// В какие модули можно вставлять
/// </summary>
public virtual ObservableCollection<Product> ForProducts { get; set; }
/// <summary>
/// Какие модули можно вставлять в меня
/// </summary>
public virtual ObservableCollection<Product> AddModules {get; set;}
.....другие поля
через FluentApi настраиваем отношения
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Product>().HasMany(x => x.AddModules).WithMany(y => y.ForProducts)
.Map(x => x.ToTable("ProductToProduct"));
}
Все замечательно, все работает. Но необходимо добавить в связующую таблицу дополнительные данные, например
//сколько штук данного продукта(изделия) можно вставить в другой продукт(изделие)
public int Count {get;set;}
// единица измерения (штуки, комплекты и тд.)
public string Unit{get;set;}
...
я хочу получить отношение многие ко многим сущности Product к самому себе, через дополнительную таблицу, в которую можно добавить дополнительные столбцы.