Как указать EF Core получить значение столбца CreatedAt во время обновления/SaveChangesC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как указать EF Core получить значение столбца CreatedAt во время обновления/SaveChanges

Сообщение Anonymous »

У меня есть такая модель:

Код: Выделить всё

class Client
{
public int id {get; set;}
...
public DateTime CreatedAt {get; set;}
}
со следующей конфигурацией типа (все остальные поля имеют конфигурацию по умолчанию):

Код: Выделить всё

builder.Property(p => p.CreatedAt)
.HasDefaultValueSql("now() at time zone 'utc'")
.ValueGeneratedOnAdd()    .Metadata.SetAfterSaveBehavior(Microsoft.EntityFrameworkCore.Metadata.PropertySaveBehavior.Ignore);
Когда я выполняю операцию обновления, я не хочу предоставлять значение CreatedAt, т. е. я хочу, чтобы оно всегда оставалось неизменным, поэтому в моем контакте API я даже не принимаю CreatedAt значение для конечной точки PUT (обновление).
Я хочу игнорировать поле CreatedAt во время обновления, и это причина для Metadata.SetAfter... . Однако после SaveChanges() поле CreatedAt остается нулевым/значением по умолчанию.
Я хотел бы каким-то образом проинструктировать EF Core извлекать значение поля CreatedAt во время операции обновления, даже если я этого не делаю. обновите его. Есть ли способ добиться этого?
Я знаю, что можно использовать что-то вроде метода Reload() для перезагрузки всех полей, но это означает, что для 1 операции обновления приложение всегда будет выполняться. 2 запроса к базе данных. И единственная причина второго запроса — просто получить значение поля CreatedAt, что мне кажется не очень хорошим.

Подробнее здесь: https://stackoverflow.com/questions/791 ... date-savec
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»