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 для каждой сущности.

Другие вопросы по тегам