Я постараюсь сделать это коротким. Любая помощь приветствуется и ценится!
У меня есть 2 класса, которые имеют отношение многие ко многим и их класс составного ключа. Когда я создаю новое «назначение», я хочу выбрать «стоматологические процедуры», которые есть в системе.
Все работает нормально, пока не попадаю в AppointmentRepository, где я пытаюсь сохранить вновь созданную встречу. Ошибка как указано.
Я пытался добавить
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
или
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)]
над свойством DentalProcedureId
в классе DentalProcedure
, но ничего не работает. Сохранены изменения и удалены таблицы, удалены все миграции и т. Д. c.
Класс DentalProcedure:
public class DentalProcedure
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DentalProcedureId { get; set; }
[Required(ErrorMessage = "The name of the procedure must be specified")]
public string ProcedureName { get; set; }
[Required(ErrorMessage = "The price of the procedure must be specified")]
public decimal ProcedurePrice { get; set; }
public bool isEnabled { get; set; }
public List<CustomerProcedure> CustomerProcedures { get; set; }
public List<AppointmentProcedure> AppointmentProcedures { get; set; }
}
Класс назначения:
public class Appointment
{
[Key]
public int AppointmentId { get; set; }
[Required]
public DateTime AppointmentStart { get; set; }
[Required]
public DateTime AppointmentEnd { get; set; }
[Required]
public string Title { get; set; }
public string ProcedureDescription { get; set; }
public int CustomerId { get; set; }
public Customer Customer { get; set; }
public int WorkDaysId { get; set; }
public WorkDays WorkDays { get; set; }
public List<AppointmentProcedure> AppointmentProcedures { get; set; }
}
Класс AppointmentProcedure:
public class AppointmentProcedure
{
public int AppointmentId { get; set; }
public Appointment Appointment { get; set; }
public int DentalProcedureId { get; set; }
public DentalProcedure DentalProcedure { get; set; }
public bool ProcedureAppointmentCanceled { get; set; }
}
Домашний контроллер:
Appointment appointment = new Appointment
{
AppointmentStart = model.AppointmentStart,
AppointmentEnd = model.AppointmentEnd,
Title = model.Title,
ProcedureDescription = model.ProcedureDescription,
CustomerId = Id,
WorkDaysId = workkWeek.WorkDaysId,
};
foreach (var proc in model.DentalProcedures)
{
if (proc.isEnabled)
{
appointment.AppointmentProcedures = new List<AppointmentProcedure>
{
new AppointmentProcedure
{
Appointment = appointment,
DentalProcedure = proc,
ProcedureAppointmentCanceled = false
}
};
}
}
_appointment.CreateAppointment(appointment);
И ошибка:
Еще раз спасибо заранее.
PS: Я все еще учусь, поэтому, если я забыл что-то упомянуть, Заранее извиняюсь!