За съжаление, Linq to SQL не поддържа стойности по подразбиране на базата данни. Вижте първия въпрос тук:
Това, което те предлагат, е да предоставите реализация на метода Insert за въпросния обект. Подписът е
partial void Insert[EntityName](Entity instance)
Така че, ако имате обект, наречен Person, който искате да имате стойност по подразбиране „Home“ за поле PhoneNumberDesc, можете да го приложите по следния начин:
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());
}
Може да успеете да се разминете с прилагането на събитието OnCreated, което се извиква с всеки конструктор за всеки обект. Тази статия обяснява малко как разширяемостта сочи в Linq To SQL:http://msdn.microsoft.com/en-us/library/bb882671.aspx
Като цяло решението наистина е гадно. Успех!