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
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.
S'appuyant sur la réponse de RPM1984 :
- Sélectionnez le champ qui a la valeur par défaut, Created_On dans mon exemple, dans votre fichier EDMX
- allez dans le panneau propriétés
- Sélectionnez l'attribut StoreGeneratedPattern
- Ensuite, changez la valeur en calculé
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
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
Faites un clic droit edmx, ouvrez avec, Choisissez l'éditeur xml, trouvez le changement "ProviderManifestToken" de 2008 à 2005. Enregistrer.