Ich habe eine Tabelle in SQL. In dieser Tabelle habe ich eine DateTime-Spalte mit einem Standardwert von GetDate ().
Im Entity-Framework möchte ich, dass das SQL-Datum anstelle des lokalen Datums des Computers verwendet wird, auf dem die Konsolen-App ausgeführt wird (der SQL-Server ist 1 Stunde dahinter).
Die Spalte lässt auch keine Nullen zu, derzeit wird ein Datumswert von 1/1/0001 übergeben, und es wird ein Fehler angezeigt:
Die Konvertierung eines datetime2-Datentyps in einen datetime-Datentyp führte zu einem Wert außerhalb des gültigen Bereichs. \ R \ nDie Anweisung wurde beendet.
Vielen Dank!
StoreGeneratedPattern
von None
in Computed
Dadurch wird EF angewiesen, keinen Wert für diese Spalte einzufügen. Daher erhält die Spalte den von der Datenbank generierten Standardwert. Denken Sie daran, dass Sie keinen Wert weitergeben können.
Wenn Sie Fluent API verwenden, fügen Sie dies einfach Ihrer DbContext-Klasse hinzu:
modelBuilder.Entity<EntityName>()
.Property(p => p.PropertyName)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);