Comment utiliser Entity Framework par défaut et les valeurs de date par défaut

c# entity-framework

Question

Dans mon schéma de base de données SQL Server, j'ai une table de données avec un champ de date qui contient une valeur par défaut de

CONVERT(VARCHAR(10), GETDATE(), 111)

ce qui est idéal pour insérer automatiquement la date dans le nouvel enregistrement lors de la saisie manuelle des enregistrements dans la base de données.

Le problème que j'ai est que lorsque vous utilisez Entity Framework et mappez le champ Date, Entity Framework insère une valeur par défaut de DateTime.Min lorsque l'entité est instanciée.

Je ne peux pas mapper le champ Date sur un DateTime nullable, c.-à-d. DateTime?

Je peux bien sûr définir explicitement le champ DateTime en C # chaque fois que l’objet est créé, que ce soit explicitement dans le code, dans le constructeur d’une classe partielle ou même lors de l’enregistrement des modifications.

Existe-t-il d'autres moyens d'obtenir ce que je veux lorsque le calcul de la valeur par défaut stocké dans la table de base de données est utilisé?

Réponse acceptée

Je viens de rencontrer ceci - j'ai corrigé la date (le champ dont j'avais besoin généré automatiquement) dans le constructeur de l'entité à l'aide d'une méthode partielle. Que ce soit idéal ou fonctionne dans tous les cas reste à voir, mais cela a résolu mon problème jusqu'à présent.


Réponse populaire

Créez une classe partielle pour votre EntityObject, ajoutez un constructeur par défaut et définissez-y des valeurs par défaut.

    public partial class YourDBObject
    {
          public YourDBObject()
          {
               this._DateField = DateTime.Now;
          }
    }


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow