У меня есть следующие объекты:
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);
но все равно не повезло. Чего мне не хватает?