EF Code First如何将DateTime指定为timestampz

时间:2016-09-09 06:17:09

标签: npgsql

使用Code First数据库创建,如何指定DateTime属性来获取postgres timestampz数据类型而不是默认时间戳? 我将所有日期存储为UTC,但是对于DateTime.Kind未指定的linq查询存在问题。我相信时间戳应该解决这个问题。

以下代码示例尝试使用“Column”属性,这会导致错误(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 个答案:

答案 0 :(得分:0)

您可以使用命名空间TimeStamp中的System.ComponentModel.DataAnnotations属性让.NET在您的实体所代表的数据库表中创建一个不可为空的Timestamp列。

[Timestamp]
public Byte[] TimeStamp { get; set; }

代码首先只允许每个实体使用一个Timestamp属性。