As classes geradas por Linq-To-Sql não pegam as restrições de valor padrão.
Talvez no futuro, mas o problema é que as restrições nem sempre são valores simples, elas também podem ser funções escalares como
GetDate()
, então o linq de alguma forma teria que saber como traduzi-los. Resumindo, nem tenta. É também um tipo de coisa muito específico do banco de dados. - Você pode escrever um gerador de código para criar classes parciais de entidade onde você pode extrair a restrição de valor padrão.
- Como alternativa, seu código de camada de negócios pode definir os padrões nos construtores de um arquivo xml, e tudo o que você precisa fazer é manter o arquivo xml atualizado.
- Em vez de fazer o trabalho em construtores, você pode emular sql e adicionar valores padrão inspecionando o ChangeSet antes de enviar alterações ao banco de dados.
O problema que você está tendo é descrito em detalhes em CodeProject - Configurando valores padrão para dados vinculados LINQ