la columna de clave primaria del tipo 'tinyint' no puede ser generada por el servidor ...LINQ a SQL inserto con clave primaria como tinyint se pone en auto-incremento da mensaje de error
Esto es más de una respuesta a una pregunta porque he estado buscando esto en la pila y no he podido encontrar ninguna pregunta/respuesta para ayudar.
Básicamente, yo estaba tratando de hacer una inserción (continuación)
public void AddTask(Task task)
{
TwoDooDataContext db = new TwoDooDataContext();
db.Tasks.InsertOnSubmit(task);
db.SubmitChanges();
}
Y mi clave principal tendieron una identidad verdadera, pero el tipo de datos se estableció en TinyInt ... ver atributos de clase a continuación
ColumnAttribute(Storage="_ID", AutoSync=AutoSync.OnInsert,
DbType="TinyInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
Hacer esto provocó el mensaje de error:
la columna de clave primaria del tipo 'tinyint' no puede ser generado por el servidor
Así que no podía resolver esto hasta que pude este enlace ... http://connect.microsoft.com/VisualStudio/feedback/details/402060/accessing-a-primary-key-id-when-its-declared-as-a-tinyint-using-linq
Es un problema conocido, pero no fija - estoy usando SQL 2008 Express y VS Web Developer 2010 Exprimir.
Mi solución fue cambiar el tipo de datos a Int y todo funciona. Espero que esto ayude en caso de que alguien más esté buscando una solución.
Y en realidad una pregunta: ¿Cuál es el mejor tipo de datos para usar en mi caso? ¿Debo mantenerlo como Int o cambiarlo aunque esté funcionando? Gracias
El enlace a connect.microsoft.com está muerto. Página no encontrada. –