Définir la valeur par défaut dans EF designer datetime

Essayer de définir la valeur par défaut d'un champ datetime pour prendre l'heure actuelle. Dans le concepteur de champs de SQL, j'utiliserais getdate () . Que dois-je utiliser dans le concepteur D'Entity Framework?

Thx

21
demandé sur justSteve 2011-01-13 21:34:22

5 réponses

Définissez ' StoredGeneratedPattern' sur Computed par rapport au champ de L'EDMX.

Vous avez toujours besoin de la valeur par défaut dans SQL Server, le paramètre ci-dessus assurera EF honour.

28
répondu RPM1984 2011-01-14 05:03:18

S'appuyant sur la réponse de RPM1984 :

  1. Sélectionnez le champ qui a la valeur par défaut, Created_On dans mon exemple, dans votre fichier EDMX
  2. allez dans le panneau propriétés
  3. Sélectionnez l'attribut StoreGeneratedPattern
  4. Ensuite, changez la valeur en calculé

Panneau EDMX vers propriétés

2
répondu Adam Huffman 2017-05-23 12:26:33

Kidos pour cette réponse bien que cela n'ait pas fonctionné pour moi après avoir défini StoreGeneratedPattern Valeur d'attribut sur calculé mais Définir StoreGeneratedPattern Valeur d'attribut sur Identity a fonctionné pour moi, je définissais par défaut "Guid" sur UserID de type UNIQUEIDENTIFIER

0
répondu Snziv Gupta 2017-05-21 07:57:02

Définition des valeurs par défaut dans Entity Framework 5 et 6 en modifiant le fichier modèle T4

Fait ci-dessous les changements dans. tt (fichier modèle) supprimer la condition if à la ligne 34

34 if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any())
35 {

Ajouter

59 OnCreated();
60 }
61
62 partial void OnCreated();
63 <#

Référez-vous à cette image http://i.stack.imgur.com/DdlNB.png rouge signifie supprimer et vert signifie ajouter

Cela ajoutera un constructeur dans toutes les classes d'entités avec la méthode OnCreated.

Comme ci-dessous

public partial class Category
{
    public Category()
    {
      this.Products = new HashSet<Product>();
      OnCreated();
    }

 partial void OnCreated();
 public int Id { get; set; }
 public string Name { get; set; }

 public virtual ICollection<Product> Products { get; set; }
}

Ensuite, créez un fichier de classe en utilisant le même espace de noms que celui de Entité.

public partial class Category
{
   partial void OnCreated()
   {
      Name = "abc"
   }
}

Reportez-vous à la réponse ci-dessous pour plus de détails https://stackoverflow.com/a/38882032/5475124

-2
répondu Noman Chali 2017-05-23 11:55:10

Faites un clic droit edmx, ouvrez avec, Choisissez l'éditeur xml, trouvez le changement "ProviderManifestToken" de 2008 à 2005. Enregistrer.

-4
répondu Warren 2011-08-01 09:27:19