Thật không may, Linq to SQL không hỗ trợ các giá trị mặc định của cơ sở dữ liệu. Xem câu hỏi đầu tiên tại đây:
Những gì họ đề xuất là bạn cung cấp triển khai phương thức Chèn cho thực thể được đề cập. Chữ ký là
partial void Insert[EntityName](Entity instance)
Vì vậy, nếu bạn có một thực thể được gọi là Person, mà bạn muốn có giá trị mặc định là "Home" cho trường PhoneNumberDesc, bạn có thể triển khai nó theo cách này:
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());
}
Bạn có thể thoát khỏi việc triển khai sự kiện OnCreate, sự kiện này được gọi với mỗi phương thức khởi tạo cho mỗi thực thể. Bài viết này giải thích một chút về cách các điểm khả năng mở rộng trong Linq To SQL: http://msdn.microsoft.com/en-us/library/bb882671.aspx
Nói chung, giải pháp thực sự rất tệ. Chúc các bạn thành công!