Я работаю с .Net Core и EF Core, и у меня возникла проблема, когда context.Entry(original).CurrentValues.SetValues(model);
не устанавливает значения.
Некоторые элементы в оригинале являются нулевыми, где они не являются нулевыми в модели, и я ожидал, что они будут обновлены.
У меня также есть строковые значения, которые тоже не устанавливаются.
Также нет ошибки.
При просмотре кода ничто не говорит о том, что что-то идет не так.
Если бы я должен был сделать
Original.Competencies = model.competencies
, а затем context.SaveChangesAsync()
, это работает.
это кодовый блок во всей его полноте.
using (var context = GetDbContext())
{
var model = reportLesson.Adapt<RepositoryReportLesson>();
var original = context.ReportLessons.Find(reportLesson.Id);
context.Entry(original).CurrentValues.SetValues(model);
context.Entry(original).State = EntityState.Modified;
await context.SaveChangesAsync();
_logger.LogInformation($"->> Updated report lesson id: {id}");
return context.Entry(model).Entity.Adapt<ReportLessonLogicModel>();
}
Итак, вопрос в том, что является причиной того, что это не устанавливает значения, и как мне обойти это?