Comment puis-je définir la valeur par défaut lorsqu'une valeur (bit) dans la base de données est définie sur NULL. En ce moment, j'arrive à me dire que cela ne peut pas être nul lors du chargement d'un bool de la base de données. p>
Merci. P>
3 Réponses :
Votre modèle doit correspondre à la base de données - si la base de données peut avoir une valeur null, vous devez utiliser une nullable BOOL dans votre modèle - vous pouvez toutefois remplacer le setter pour cette propriété dans votre modèle pour transformer une null en une valeur fausse:
public class Foo { private bool _bar; public bool? Bar { get { return _bar; } set { if (!value.HasValue) { _bar = false; } else _bar = value.Value; } } }
Lorsque vous ajoutez une migration pour vos modifications de la base de données, mettez à jour la classe de migration pour définir la valeur par défaut avant de mettre à jour la base de données:
ALTER TABLE [Jobs] ADD DEFAULT ((0)) FOR [IsAdvertisingRequired] GO
Vous pouvez modifier ma réponse de Possibilité du champ DateTime par défaut à getDate () avec l'entité Framework Migrations? pour définir le défautValue / DefaultValuesQL sur false. Il utilise une classe wrapper qui implémente la migrationcodegenerator puis modifie la migrationopération (créatureOPeration / AddColumnoperation) pour définir la valeur par défautValuesQL pour les propriétés DateTime si elles ne sont pas nulles. P>