eine Klasse hinzufügen wie folgt:
public class StaffSchedule
{
public int StaffId { get; set; }
public int ScheduleId { get; set; }
public virtual Staff Staff { get; set; }
public virtual Schedule Schedule { get; set; }
public DateTime Date { get; set; }
}
Ändern Sie bitte Ihre Mitarbeiter und Zeitplan Klassen:
public class Schedule
{
public int Id { get; set; }
//Other Fields
public ICollection<StaffSchedule> StaffSchedules { get; set; }
}
public class Staff
{
public int Id { get; set; }
//Other Fields
public ICollection<StaffSchedule> StaffSchedules { get; set; }
}
Und schließlich, in der Kontextdatei (OnModelCreating-Methode):
modelBuilder.Entity<Staff>().HasKey(x => x.Id);
modelBuilder.Entity<Schedule>().HasKey(x => x.Id);
modelBuilder.Entity<StaffSchedule>().HasKey(x =>
new
{
x.StaffId,
x.ScheduleId
});
modelBuilder.Entity<StaffSchedule>()
.HasRequired(x => x.Staff)
.WithMany(x => x.StaffSchedules)
.HasForeignKey(x => x.StaffId);
modelBuilder.Entity<StaffSchedule>()
.HasRequired(x => x.Schedule)
.WithMany(x => x.StaffSchedules)
.HasForeignKey(x => x.ScheduleId);
UPDATE:
aussieht wie du wollte das eigentlich:
public class Patient
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Staff
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Schedule
{
public int Id { get; set; }
public DateTime Date { get; set; }
public int PatientId { get; set; }
public int StaffId { get; set; }
[ForeignKey("PatientId")]
public virtual Patient Patient { get; set; }
[ForeignKey("StaffId")]
public virtual Staff Staff { get; set; }
}
Sie müssen die Verknüpfungstabelle selbst (StaffSchedules) einzurichten und betreiben einen 1: M Bezug auf diese Tabelle sowohl von Personal und Terminen. Sie können die Zuordnungen mithilfe einer fließenden API in Ihrer Kontextdatei konfigurieren. – RizJa