EF Code First Как указать DateTime в качестве метки времени
С созданием базы данных Code First, как можно указать свойство DateTime для получения типа данных postgres timestampz вместо метки времени по умолчанию? Я сохраняю все даты как UTC, однако у меня есть проблема с запросами linq, когда DateTime.Kind не указан. Я считаю, что временная метка должна решить эту проблему.
Приведенные ниже примеры кода пытаются использовать атрибут "Столбец", что приводит к ошибке (DateTime не совместим).
Я использую npgsql v3.1.7 и EntityFramework6.Npgsql v 3.1.1
[Column(TypeName="timestampz")]
public DateTime CreatedByDate { get; set; }
[Column(TypeName="NpgsqlDateTime")]
public DateTime CreatedByDate { get; set; }
1 ответ
Вы можете использовать TimeStamp
атрибут в пространстве имен System.ComponentModel.DataAnnotations
чтобы.NET создал необнуляемый столбец Timestamp в таблице базы данных, которую представляет ваша сущность.
[Timestamp]
public Byte[] TimeStamp { get; set; }
Сначала код допускает только одно свойство Timestamp для каждой сущности.