sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo me aseguro de que Linq to Sql no anule ni viole los valores predeterminados de la base de datos que no aceptan valores NULL?

Las clases generadas de Linq-To-Sql no recogen las variables de valor predeterminadas.

Tal vez en el futuro, pero el problema es que las restricciones no siempre son valores simples, también pueden ser funciones escalares como GetDate() , por lo que linq de alguna manera tendría que saber cómo traducirlos. En resumen, ni siquiera lo intenta. También es un tipo de cosa muy específica de la base de datos.

  • Podría escribir un generador de código para crear clases parciales de entidad donde pueda extraer la constante de valor predeterminada.
  • Alternativamente, su código de capa empresarial podría establecer los valores predeterminados en los constructores desde un archivo xml, y todo lo que necesita hacer es mantener el archivo xml actualizado.
  • En lugar de hacer el trabajo en los constructores, puede emular sql y agregar valores predeterminados al inspeccionar el ChangeSet antes de enviar los cambios a la base de datos.

El problema que tiene se describe detalladamente en CodeProject:configuración de valores predeterminados para datos vinculados a LINQ