Laden...

EF 6.02: RowVersion [TimeStamp]: kein automatischer Insert

Erstellt von schuppsl vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.385 Views
S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 6 Jahren
EF 6.02: RowVersion [TimeStamp]: kein automatischer Insert

verwendetes Datenbanksystem: MSSQL

Hey,

also langsam macht mich das EF wahnsinnig.
Habe eine ganz normale Code-First Migration erstellt mit einer ganz normalen RowVersion.

Hat auch alles geklappt, die Migration sieht gut aus und in der Datenbank sieht es auch gut aus:

RowVersion(timestamp, not null) 

Im Model:


  [Required, DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        [Timestamp]
        byte[] RowVersion { get; set; }

Habe das auch in anderen Projekten.

Wenn ich hier nun ein Insert mache - also ein neues Objekt anlege und mit Daten fülle (ausser RowVersion) und dann

SaveChanges() bekomme ich eine> Fehlermeldung:
DbEntityValidationException

mit dem Hinweis, dass das Feld RowVersion ein Pflichtfeld ist.

Bisher wurde das vom EF immer automatisch verwaltet und RowVersion automatisch gesetzt.

Bei Update geht es wie gehabt.

Habe ich was vergessen?

S
schuppsl Themenstarter:in
789 Beiträge seit 2007
vor 6 Jahren

Also mit dem EF Core 2.0.2 geht alles eiwandfrei wie gehabt 🤔

16.842 Beiträge seit 2008
vor 6 Jahren

EF Core ist Open Source auf GitHub.
Feel free einen Bug zu erstellen (sofern er nicht schon existiert).

M
48 Beiträge seit 2011
vor 6 Jahren

Also laut Doku genügt ein Timestamp Attribute oder Timestamp Attiribute, bzw. sollte nicht noch ein Required Attribute verwendet werden.