Я следил за документацией и пришел к этому ответу, пожалуйста, кто-нибудь, кто знает больше меня и исправит меня, если я ошибаюсь.
Сначала я создал свою таблицу соединений:
CalculationSelectorCalculationType.cs
public class CalculationSelectorCalculationType
{
public int CalculationSelector_Id { get; set; }
public CalculationSelector CalculationSelector { get; set; }
public int CalculationType_Id { get; set; }
public CalculationType CalculationType { get; set; }
}
CalculationSelector.cs
public CalculationSelector()
{
_calculationTypes = new List<CalculationSelectorCalculationType>();
FontSize = 30;
}
public int SortOrder { get; set; }
public string UserString { get { return Name; } }
private IList<CalculationSelectorCalculationType> _calculationTypes;
public virtual IList<CalculationSelectorCalculationType> CalculationTypes
{
get { return _calculationTypes; }
set { _calculationTypes = value; }
}
CalculationType.cs
public int SortOrder { get; set; }
public string UserString
{
get { return Name; }
}
public int CalculationMethod { get; set; }
... и, наконец, мой DbContext:
modelBuilder.Entity<CalculationSelectorCalculationType>().HasKey(p => new { p.CalculationSelector_Id, p.CalculationType_Id });
modelBuilder.Entity<CalculationSelectorCalculationType>().HasOne(p => p.CalculationSelector).WithMany(x => x.CalculationTypes).HasForeignKey(p => p.CalculationSelector_Id);
modelBuilder.Entity<CalculationSelectorCalculationType>().HasOne(p => p.CalculationType).WithMany().HasForeignKey(p => p.CalculationType_Id);