2016-09-09 2 views
0

Mit der Code First-Datenbankerstellung können Sie eine DateTime-Eigenschaft angeben, um den Postgres-Timestampz-Datentyp anstelle des Standardzeitstempels zu verwenden. Ich speichere alle Daten als UTC, habe jedoch ein Problem mit linq-Abfragen, bei denen die DateTime.Kind nicht angegeben ist. Ich glaube, der Zeitstempel sollte das beheben.EF-Code zuerst So geben Sie DateTime als Zeitstempel an

Die folgenden Codebeispiele versuchen, das Attribut 'Column' zu verwenden, dies führt zu einem Fehler (DateTime ist nicht kompatibel).

Ich verwende Npgsql v3.1.7 und EntityFramework6.Npgsql v 3.1.1

[Column(TypeName="timestampz")] 
public DateTime CreatedByDate { get; set; } 

[Column(TypeName="NpgsqlDateTime")] 
public DateTime CreatedByDate { get; set; } 

Antwort

0

Sie können das TimeStamp Attribut im Namensraum System.ComponentModel.DataAnnotations zu .NET erstellen eine Nicht-Nullable-Timestamp-Spalte in der Datenbank Tabelle, die Ihre Entität darstellt.

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

Code zuerst ermöglicht nur eine Timestamp-Eigenschaft pro Entität.

Verwandte Themen