La raison en est que les valeurs par défaut que vous pouvez définir dans le modèle conceptuel et les valeurs par défaut de la base de données sont totalement indépendant.
Considérons une situation typique où vous avez déjà une base de données qui a des valeurs par défaut définies sur les colonnes, par la même occasion, cette valeur par défaut ne sera pas récupérée dans le schéma de magasin ou par l'entité elle-même. Par conséquent, si vous définissez une valeur par défaut pour une propriété d'une entité dans un modèle qui sera utilisé pour générer un schéma de base de données, il est important de savoir qu'aucune des valeurs par défaut définies pour la propriété d'une entité poussé à la base de données.
Cependant, il convient de mentionner que le modèle de génération de code EntityObject T4 par défaut et le modèle POCO Entities par défaut définiront tous deux la valeur par défaut de cette propriété dans la classe générée.
Vous pouvez vérifier cela en regarder de plus près yourModelName.edmx.sql fichier qui a été généré par VS2010 une fois que vous cliquez sur « Générer base de données modèle ... ». Comme vous pouvez le voir, il n'y a pas une telle chose comme ça dans ce:
ADD DEFAULT CONTRAINTE « Valeur par défaut » POUR YourColumnName
Merci pour la réponse concise. Cela a un sens parfait. – Shaun
Cela a du sens mais rend les migrations de code plus difficiles. Ajouter un champ non nullable à une table existante, le script de migration généré de la comparaison des deux schémas dans SQL Studio ne fonctionnera pas. Doit être fait manuellement à nouveau. – simbolo