Est-il possible, à l'aide d'annotations de données, d'ajouter une valeur par défaut pour la propriété int
quelque chose comme
[DefaultValue=1]
public int MyId {get; set;}
Essayez ceci - définissez la valeur par défaut dans le constructeur:
public class YOURMODEL
{
public int MyId { get; set; }
public YOURMODEL()
{
MyId = 1;
}
}
Ajout ultérieur par un autre utilisateur: Depuis C # 6.0 (2015), cette syntaxe plus simple est autorisée:
public class YOURMODEL
{
public int MyId { get; set; } = 1;
}
La méthode du constructeur est bien sûr correcte (selon @Nilesh), mais cette solution ne traite aucune des données existantes que vous avez peut-être déjà créées dans votre base de données.
Vous pouvez également mettre à jour vos données existantes en générant la migration, puis en ajustant la méthode AddColumn ainsi ...
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false));
changements à:
AddColumn("dbo.Orgs", "MyId", c => c.Int(nullable: false, defaultValue: 1));
Notez que cela créera également un déclencheur de base de données qui mettrait automatiquement à jour la valeur par défaut sur INSERT, de sorte que vous n’auriez pas besoin techniquement de la méthode du constructeur à partir de la perspective de la base de données, mais il est préférable de définir la valeur à l’aide du constructeur.
Utilisez [DefaultValue(false)]
.
( Référence )
Vous ne pouvez le faire qu'en utilisant le constructeur de la classe. Votre code devrait donc ressembler à ceci:
public class MyModel
{
public MyModel()
{
MyId = 1;
}
public int MyId {get; set;}
}
Cela entraînera la définition de la propriété MyId
sur 1
chaque fois qu'une nouvelle instance de la classe est créée. Toutefois, si la liaison de modèle détecte que l'utilisateur a spécifié une valeur pour MyId
, elle remplacera la valeur par défaut par celle spécifiée par l'utilisateur.