Entity Framework 6 Code First-Standard datetime-Wert auf einfügen

Wenn ich speichern der änderungen in der Datenbank, die ich in der folgenden Ausnahme:

Cannot insert the value NULL into column 'Registered', table
'EIT.Enterprise.KMS.dbo.LicenseEntry'; column does not allow nulls.
INSERT fails. The statement has been terminated.

Den zugehörigen code first-Modell-Eigenschaft sieht wie folgt aus:

[DatabaseGenerated(DatabaseGeneratedOption.Identity), DataMember]
public DateTime         Registered          { get; private set; }

... und hier ist, warum ich bin verwirrt: soweit ich weiß, indem Sie die annotation [DatabaseGenerated(DatabaseGeneratedOption.Identity) bestelle ich Entity Framework zur automatischen Erzeugung des Feldes (in diesem Fall: Nur einmal zum Zeitpunkt der Erstellung.)

Also ich gehe davon aus, dass eine nicht-null-Werte zulässt (erforderlich) das Feld, ohne die Möglichkeit, ändern Sie das Feld manuell, wo EF kümmert.

Was mache ich falsch?


Hinweise:

  1. Ich will nicht von Fluent-API, die ich verwenden möchten POCOs.
  2. Die Eigenschaft defaultValueSql ist auch keine option, weil ich angewiesen Datenbank unabhängig für dieses Projekt (z.B. für GETDATE()).
  3. Bin ich mit Entity Framework 6-alpha-3-Code First.
Ist die AutoGenerate auch Primärschlüssel? Wenn dem so ist, müssen Sie geben Sie den [key] - Anmerkung.
Nein. Es ist nur eine Eigenschaft.
Ich glaube nicht, dass die DateTime-Datentyp-Unterstützung für die identity-Feld-Attribut.

InformationsquelleAutor Atrotygma | 2013-06-11

Schreibe einen Kommentar