Миграция EF6 - FK на объект с ошибкой составного ключа - PullRequest
1 голос
/ 25 октября 2019

У меня есть следующие объекты:

public class MeetingAttendee
    {
        public int MeetingId { get; set; }

        public Meeting Meeting { get; set; }

        public int UserId { get; set; }

        public User User { get; set; }

        public IEnumerable<MeetingAttendanceEntry> MeetingAttendanceEntries { get; set; }
    }

public class MeetingAttendanceEntry
    {
        public int Id { get; set; }

        public int MeetingId { get; set; }

        public Meeting Meeting { get; set; }

        public int MeetingAttendeeId { get; set; }

        public MeetingAttendee MeetingAttendee { get; set; }

        public AttendanceStatus AttendanceStatus { get; set; }
    }

MeetingAttendee установлен как:

modelBuilder.Entity<MeetingAttendee>().HasKey(pk => new { pk.MeetingId, pk.UserId });
modelBuilder.Entity<MeetingAttendee>().HasRequired(o => o.User).WithMany(m => m.MeetingAttendees).HasForeignKey(fk => fk.UserId);
modelBuilder.Entity<MeetingAttendee>().HasRequired(o => o.Meeting).WithMany(m => m.Attendees).HasForeignKey(fk => fk.MeetingId);

И когда я пытаюсь добавить MeetingAttendanceEntry, я получаю " Количество свойств в зависимых и основных ролях в ограничении отношений должно быть одинаковым"ошибка проверки.

Я думаю, что это происходит из составного ключа, но все, что я пробовал, не работает.

Я попытался из родительского объекта:

modelBuilder.Entity<MeetingAttendee>().HasMany(m => m.MeetingAttendanceEntries).WithRequired(e => e.MeetingAttendee).HasForeignKey(e => e.MeetingAttendeeId);

Из дочернего объекта:

modelBuilder.Entity<MeetingAttendanceEntry>().HasRequired(e => e.MeetingAttendee).WithMany(m => m.MeetingAttendanceEntries).HasForeignKey(e => e.MeetingAttendeeId);

Я попытался добавить User и UserId в MeetingAttendanceEntry, а затем установить его как FK:

modelBuilder.Entity<MeetingAttendanceEntry>().HasRequired(e => e.User).WithMany().HasForeignKey(e => e.UserId);

но все равно не повезло. Чего мне не хватает?

...