Как создать таблицы с отношением "многие ко многим" с несколькими полями в ядре структуры сущностей?
Я пытался создать отношение «многие ко многим» в своей базе данных, используя efcore, однако у меня возникла проблема при наличии более одного поля.
public class Sheet{
[Key]
public long Id{get;set;}
public virtual ICollection<SheetBudgetMonth> firstbudgetMonth = new List<SheetBudgetMonth>();
public virtual ICollection<SheetBudgetMonth> secondbudgetMonth = new List<SheetBudgetMonth>();
public virtual ICollection<SheetBudgetMonth> thirdbudgetMonth = new List<SheetBudgetMonth>();
}
public class SheetBudgetMonth{
public long SheetId {get;set;}
public virtual Sheet Sheet{get;set;}
public long BudgetMonthId {get;set;}
public virtual BudgetMonth BudgetMonth{get;set;}
}
public class BudgetMonth{
[Key]
public long Id{get;set;}
public string Code{get;set;}
public DateTime BudgetDate{get;set;}
}
//many to many link table mappings
modelBuilder.Entity<SheetBudgetMonth>().HasKey(bc=>{bc.SheetId, bc.BudgetMonthId});
modelBuilder.Entity<SheetBudgetMonth>().HasOne(bc => bc.Sheet).WithMany(b => b.firstbudgetMonth ).HasForeignKey(bc => bc.SheetId);
modelBuilder.Entity<SheetBudgetMonth>().HasOne(bc => bc.Sheet).WithMany(b => b.secondbudgetMonth ).HasForeignKey(bc => bc.SheetId);
modelBuilder.Entity<SheetBudgetMonth>().HasOne(bc => bc.Sheet).WithMany(b => b.thirdbudgetMonth ).HasForeignKey(bc => bc.SheetId);
Migraton выдает сообщение об ошибке, в котором говорится: «FirstbudgetMonth и электронная таблица уже существуют». Навигационные свойства могут участвовать только в одном отношении.