Bohužel Linq to SQL nepodporuje výchozí hodnoty databáze. Viz první otázka zde:
Navrhují, abyste poskytli implementaci metody Insert pro danou entitu. Podpis je
partial void Insert[EntityName](Entity instance)
Takže pokud jste měli entitu nazvanou Osoba, u které jste chtěli mít výchozí hodnotu "Home" pro pole PhoneNumberDesc, můžete ji implementovat takto:
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());
}
Možná vám projde implementace události OnCreated, která se volá s každým konstruktorem pro každou entitu. Tento článek trochu vysvětluje, jak rozšiřitelnost ukazuje Linq To SQL:http://msdn.microsoft.com/en-us/library/bb882671.aspx
Suma sumárum, řešení je opravdu na hovno. Hodně štěstí!