Malheureusement, Linq to SQL ne prend pas en charge les valeurs par défaut de la base de données. Voir la première question ici :
Ce qu'ils suggèrent, c'est que vous fournissiez une implémentation de la méthode Insert pour l'entité en question. La signature étant
partial void Insert[EntityName](Entity instance)
Donc, si vous aviez une entité appelée Person, que vous vouliez avoir une valeur par défaut de "Home" pour un champ PhoneNumberDesc, vous pourriez l'implémenter de cette façon :
partial void InsertPerson(Person instance)
{
if (string.IsNullOrEmpty(instance.PhoneNumberDesc))
instance.PhoneNumberDesc = "Home";
var insertParams = new List<object>();
var insertStatement = "insert into ...";
// build the rest of the insert statement and fill in the parameter values here...
this.ExecuteQuery(typeof(Person), insertStatement, insertParams.ToArray());
}
Vous pourrez peut-être vous en tirer en implémentant l'événement OnCreated, qui est appelé avec chaque constructeur pour chaque entité. Cet article explique un peu comment les points d'extensibilité dans Linq To SQL :http ://msdn.microsoft.com/en-us/library/bb882671.aspx
Dans l'ensemble, la solution est vraiment un peu nulle. Bonne chance !