Les classes générées par Linq-To-Sql ne récupèrent pas les contraintes de valeur par défaut.
Peut-être dans le futur, mais le problème est que les contraintes ne sont pas toujours des valeurs simples, elles peuvent aussi être des fonctions scalaires comme GetDate()
, donc linq devrait en quelque sorte savoir comment les traduire. Bref, ça n'essaie même pas. C'est aussi un type de chose très spécifique à la base de données.
- Vous pouvez écrire un générateur de code pour créer des classes partielles d'entité où vous pouvez extraire la valeur par défaut constante.
- Alternativement, votre code de couche métier peut définir les valeurs par défaut dans les constructeurs à partir d'un fichier xml, et tout ce que vous avez à faire est de maintenir le fichier xml à jour.
- Au lieu de faire le travail dans les constructeurs, vous pouvez émuler sql et ajouter des valeurs par défaut en inspectant le ChangeSet avant de soumettre les modifications à la base de données.
Le problème que vous rencontrez est décrit en détail dans CodeProject - Setting Default Values for LINQ Bound Data