sql server 2005 - Linq-to-SQL ignora el valor predeterminado de SQL Server
sql-server-2005 (6)
Al usar Linq-to-SQL, agregar una columna a una tabla existente y establecer un valor predeterminado en esa nueva columna, parece que Linq to SQL ignora el valor predeterminado. ¿Alguien más ha experimentado este comportamiento? ¿Hay alguna forma de solucionarlo, de modo que Linq-to-SQL o SQL Server establezca automáticamente el valor predeterminado?
La columna que agregué era de tipo Bit, con un valor predeterminado establecido en 1.
Ahora he corregido definitivamente esto usando un ejemplo de este blog .
partial void OnCreated() {
if (this.DateTimeCreated == null) {
this.DateTimeCreated = DateTime.Now;
}
}
Necesitaba pasar esto a una clase de datos de contexto parcial, ya que la predeterminada se sobrescribe automáticamente cada vez que cambias algo en el dbml.
Establecer propiedad Auto generada en True.
He visto esto. Lo que puede hacer es ir al diseñador de l2sql, ver las propiedades de la columna de la tabla que tiene un valor predeterminado. Hay una propiedad "Valor generado automáticamente", que se establece en verdadero.
Este mismo valor se establece automáticamente en verdadero para la columna de identidad, ya que en ese caso SQL Server está generando sus ID de fila.
Me encontré con el mismo problema del tipo de datos booleano con valor predeterminado como falso y no actualizando ese valor. Así que cuando veo la tabla de la base de datos, se encontró que no había una clave principal establecida, por lo tanto, cuando se configuró la clave principal, se actualizó . así que compruebe una tabla si tiene la clave principal o no.
Si alguna vez necesita cambiar el valor en su propio código (por ejemplo, un valor de tabla de tipos con un valor predeterminado), no use el "Valor generado automáticamente" o lo obtendrá más adelante cuando intente actualizarlo.
El valor del miembro ''AlternativeQuoteStatus'' de un objeto de tipo ''OrderDetail'' cambió. Un miembro que es calculado o generado por la base de datos no puede ser cambiado.
Prefiero establecer dichos valores cuando creo el objeto, con un respaldo en OnCreated
como lo describen otros aquí.
Vaya al diseñador y seleccione el valor "Sincronización automática" de "OnInsert". Esto sincronizará el valor cuando el registro se inserte en la base de datos.