残念ながら、LinqtoSQLはデータベースのデフォルト値をサポートしていません。ここで最初の質問を参照してください:
彼らが示唆しているのは、問題のエンティティにInsertメソッドの実装を提供することです。署名は
partial void Insert[EntityName](Entity instance)
したがって、Personというエンティティがあり、PhoneNumberDescフィールドのデフォルト値を「Home」にしたい場合は、次のように実装できます。
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イベントの実装を回避できる場合があります。この記事では、LinqToSQLの拡張性がどのようにポイントするかについて少し説明します。
全体として、ソリューションは本当にちょっとひどいです。頑張ってください!