Как создать отношение «многие ко многим» в нескольких полях в Entity Framework Core - PullRequest
0 голосов
/ 26 июня 2019

Как создать таблицы с отношением "многие ко многим" с несколькими полями в ядре структуры сущностей?

Я пытался создать отношение «многие ко многим» в своей базе данных, используя 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 и электронная таблица уже существуют». Навигационные свойства могут участвовать только в одном отношении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...