Поле Entity Framework Core DateTime обновляется до 01.01.0001 - PullRequest
0 голосов
/ 10 апреля 2020

Я столкнулся с одной проблемой, связанной с Entity Framework Core. У меня есть поле DateTime в таблице, как показано ниже.

Столбец таблицы - datetime2 (7) & Nullable - False

Этот столбец сопоставлен с сущностью в asp. net коде ядра для Свойство класса, как показано ниже.

public DateTime dateCreated { get; set; }

Всякий раз, когда я обновляю (добавление не имеет проблем) запись, поле таблицы устанавливается на 1/1/0001 12:00 AM. Поле с логической датой не должно обновляться.

Я пытался изменить ModalSnapshot, но безуспешно

b.Property<DateTime>("dateCreated")
   .HasColumnType("datetime2")
   **.ValueGeneratedNever();**  // Added this line  but there is not effect.

Может кто-нибудь подсказать мне, в чем проблема.

Заранее спасибо ,

1 Ответ

0 голосов
/ 10 апреля 2020

Что я обнаружил, так это то, что мы должны поддерживать значение в редактировании и обновлении.

Когда мы извлекаем запись из базы данных для редактирования, мы должны присвоить значение dateCreated полю сущности. То же самое для обновления, мы должны передать то же значение, которое мы получили при получении записи.

Я не делал этого, потому что предполагал, что Entity Framework с этим справится. Поскольку поля не нулевые и уже есть значение в поле (значение, которое добавляется при добавлении записи). Я ожидал, что это не коснется значения.

Это происходит из-за ненулевого столбца в базе данных, структура сущностей назначает значение по умолчанию 1/1/0001 12:00 AM, если мы не указываем явно.

//Added this line in get and update method.
//Date created 
Entity               Record from db
entity.dateCreated = entity.dateCreated;

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...