2017-06-13 1 views
0

Je dois définir une valeur par défaut pour un champ dans une classe de modèle de données faisant partie d'une application Web ASP.NET MVC Core que je suis en train de créer.valeur par défaut pour le champ dans le modèle de données asp.net Core

L'application est en cours de mise en œuvre avec des suppressions logicielles. C'est-à-dire que la table Model Class/DB a un champ appelé "Active" c'est un booléen/bit qui est défini sur true ou false en conséquence. c'est-à-dire lorsqu'un élément est supprimé alors sa valeur active est false/0. Tous les éléments sont actifs lorsqu'ils sont créés.

Je sais qu'il est possible de définir explicitement la valeur dans le contrôleur lorsque les données sont enregistrées dans la méthode "CreateItem" dans le contrôleur, mais je préfère ne pas avoir à le faire. Y a-t-il un moyen différent? par exemple. décorer le champ dans la classe Modèle avec un attribut.

Répondre

1

Je n'ai pas testé, mais dans votre classe DBContext vous devez faire ceci:

protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<YourEntity>() 
      .Property(b => b.YourBooleanProperty) 
      .HasDefaultValue(true); 
    } 

HasDefaultValue prend dans un objet, donc je ne sais pas si EF ne une cartographie sql dans ce scénario si La valeur par défaut que vous transmettez ici peut être true ou 1. Je voudrais tester les deux :-)

+0

Merci, Muqueet! Cela a fait l'affaire. – user8155621