Не удается связать модели М-М в EF 5

Очередная напасть: Есть первая модель:

   [Table("Employee")]
    public class Employee
    {
        [Key]
        public int Id                                { get; set; } //Идентификатор
        public string Name                           { get; set; } //Имя
        public string Surname                        { get; set; } //Фамилия
        public string Patronymic                     { get; set; } //Отчество
        public ICollection<Project> LeaderProjects   { get; set; } //1 сотрудник может быть руководителем нескольких проектов
        public ICollection<Project> EmployeeProjects { get; set; } //1 сотрудник может быть работником нескольких проектов
        public virtual ICollection<Project> ExecutorProjects { get; set; } //1 сотрудник может быть исполнителем нескольких проектов

        public override string ToString()
        {
            return $"{Surname} {Name[0]}. {Patronymic[0]}.";
        }
    }

Есть вторая модель:

public class Project
    {
        [Key]
        public int Id                         { get; set; } //Идентификатор
        public string Name                    { get; set; } //Имя
        public string CompanyCustomer         { get; set; } //Компания-заказчик
        public string CompanyExecutor         { get; set; } //Компания-исполнитель
        public int? EmployeeId                 { get; set; }
        public Employee Employee              { get; set; } //Сотрудник
        public int? LeaderId                   { get; set; }
        public Employee Leader                { get; set; } //Руководитель
        public virtual ICollection<Employee> Executors { get; set; } //Исполнитель
        public DateTime Start                 { get; set; } //Дата начала проекта
        public DateTime Finish                { get; set; } //Дата окончания проекта
        [Column(TypeName = "int")]                          
        public Priority Priority              { get; set; } //Приоритет

        public override string ToString()
        {
            return Name;
        }
    }

Есть DbContext

 public class ApplicationDbContext : DbContext
    {
        public DbSet<Project> Projects { get; set; }
        public DbSet<Employee> Employees { get; set; }

        readonly string stringConnect;
        public ApplicationDbContext()
        {
        }
        public ApplicationDbContext(string stringConnect)
        {
            this.stringConnect = stringConnect;
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {

            modelBuilder
              .Entity<Employee>()
              .HasMany(e => e.EmployeeProjects)
              .WithOne(p => p.Employee);

            modelBuilder
              .Entity<Employee>()
              .HasMany(e => e.LeaderProjects)
              .WithOne(p => p.Leader);

            modelBuilder
              .Entity<Employee>()
              .HasMany(e => e.ExecutorProjects)
              .WithMany(p => p.Executors)
              .UsingEntity(j => j.ToTable("EmployeeProject"));

            var emp = new Employee { Id = 1, Name = "Игорь", Surname = "Панфлов", Patronymic = "Платонович" };
            var emp2 = new Employee { Id = 2, Name = "Степан", Surname = "Князев", Patronymic = "Даниилович" };
            var emp3 = new Employee { Id = 3, Name = "Аверьян", Surname = "Корнилов", Patronymic = "Демьянович" };

            var prj = new Project { Id = 1, EmployeeId = emp.Id,   LeaderId = emp.Id, CompanyCustomer = "Customer", CompanyExecutor = "Executor", Start = DateTime.Now, Finish = DateTime.Now.AddDays(10), Name = "SuperProject", Priority = Priority.High };
            var prj2 = new Project { Id = 2, EmployeeId = emp2.Id, LeaderId = emp2.Id, CompanyCustomer = "Customer2", CompanyExecutor = "Executor2", Start = DateTime.Now, Finish = DateTime.Now.AddDays(13), Name = "SuperProject2", Priority = Priority.Low };
            var prj3 = new Project { Id = 3, EmployeeId = emp3.Id, LeaderId = emp3.Id, CompanyCustomer = "Customer3", CompanyExecutor = "Executor3", Start = DateTime.Now, Finish = DateTime.Now.AddDays(16), Name = "SuperProject3", Priority = Priority.Middle };

            prj.Executors = new[] { emp, emp2, emp3 }; //Exception

            modelBuilder.Entity<Employee>()
            .HasData(emp, emp2, emp3);

            modelBuilder.Entity<Project>()
                .HasData(prj, prj2, prj3 );

            base.OnModelCreating(modelBuilder);
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite($"Filename={stringConnect}");
        }
    }

При попытке добавить в проект исполнителей выскакивает следующее исключение: The seed entity for entity type 'Project' cannot be added because it has the navigation 'Executors' set. To seed relationships, add the entity seed to 'EmployeeProject (Dictionary<string, object>)' and specify the foreign key values {'ExecutorProjectsId'}. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the involved property values.

В чем может быть проблема, подскажите, ведь отношение 1-М работает как нужно, а при М-М исключение


Ответы (0 шт):