J'essaie de récupérer une ligne de la base de données, de modifier la valeur de certaines colonnes et de l'ajouter comme nouvelle ligne (Entity Framework Core),
Mais je reçois l'erreur suivante
Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table 'Audit_Schedules' lorsque IDENTITY_INSERT est défini sur OFF.
Cette table a une clé primaire "ScheduleId"
Voici mon code
AuditSchedules _schedules = new AuditSchedules();
using (var ctx = new QuestionnaireEntities(_configuration))
{
_schedules = ctx.AuditSchedules.Where(x => x.ScheduleId == model.ScheduleID).SingleOrDefault();
_schedules.StaffId = model.TransferedAuditorCode;
_schedules.StaffName = model.TransferedAuditorName;
_schedules.FromDate = _schedules.ToDate = Convert.ToDateTime(model.TransferedScheduleDate);
ctx.AuditSchedules.Add(_schedules);
ctx.SaveChanges();
_subschedules = ctx.AuditSubSchedule.Where(x => x.SubScheduleId == model.SubScheduleID).SingleOrDefault();
_subschedules.IsHoliDay = "Y";
_subschedules.HolidayType = model.HolidayType;
_subschedules.TransferedScheduleId = _schedules.ScheduleId.ToString();
ctx.AuditSubSchedule.Update(_subschedules);
ctx.SaveChanges();
}
L'erreur s'invite
ctx.AuditSchedules.Add(_schedules);
J'ai d'abord pensé qu'il y avait un conflit dans la valeur de Schedule_ID et qu'il n'était pas possible d'ajouter une clé primaire dupliquée, mais Schedule_ID est un champ généré automatiquement et ce problème ne devrait pas se produire.
J'ai également essayé de lui donner une valeur différente
_schedules.ScheduleId = 0;
mais il ne s'insère pas . Comment puis-je répliquer une ligne avec quelques changements (je veux ajouter une nouvelle ligne mais avec des valeurs modifiées) ?