Entity Framework 6 le Premier Code par défaut valeur datetime sur insérer

Quand je suis à enregistrer les modifications apportées à la base de données, je suis en cours d'exécution dans l'exception suivante:

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.

Le code lié premier modèle de la propriété ressemble à ceci:

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

... et voici pourquoi je suis confus: autant Que je sache, en fournissant à l'annotation [DatabaseGenerated(DatabaseGeneratedOption.Identity) je commande le Cadre de l'Entité à générer automatiquement le champ (dans ce cas: une Seule fois au moment de la création.)

Donc je m'attends à avoir un non nullable (obligatoire) le champ, sans la possibilité de modifier manuellement le champ où EF est de prendre soin de.

Ce que je fais mal?


Notes:

  1. Je ne veux pas utiliser Couramment l'API, que je veux utiliser POCOs.
  2. La propriété defaultValueSql est pas une solution, parce que j'ai besoin de s'appuyer base de données independed pour ce projet (par exemple, pour GETDATE()).
  3. Je suis en utilisant Entity Framework 6 3 alpha, le Premier Code.
Est également de générer automatiquement votre clé Primaire? Si oui, vous aurez besoin de spécifier la touche [] annotation.
Pas de. C'est juste une propriété.
Je ne crois pas que le type de données DateTime a un support pour le champ d'identité de l'attribut.

OriginalL'auteur Atrotygma | 2013-06-11