Tengo una base de datos SQL Server. Esta base de datos tiene una tabla llamada Item. El artículo tiene una propiedad llamada "ID". ID es la clave principal en mi mesa. Esta clave principal es un entero con un valor de incremento de 1. Cuando intento para insertar el registro, recibo un error que dice:IDENTITY INSERT y LINQ to SQL
No se puede insertar valor explícito para la columna de identidad en la tabla 'Elemento' cuando IDENTITY_INSERT es .. en OFF "
estoy intentando insertar registros usando el siguiente código:
public int AddItem(Item i)
{
try
{
int id = 0;
using (DatabaseContext context = new DatabaseContext())
{
i.CreatedOn = DateTime.UtcNow;
context.Items.InsertOnSubmit(i);
context.SubmitChanges();
id = i.ID;
}
return id;
}
catch (Exception e)
{
LogException(e);
}
}
Cuando miro i.ID antes de enviarlo, noto que i.ID se establece en 0 . Lo que implicaría que estoy tratando de insertar 0 como la identidad. H sin embargo, no estoy seguro de lo que debería ser. ¿Alguien me puede ayudar?
Gracias!
¿está seguro de que establece la columna como la clave principal en el DB y que sus clases generadas de Linq a Sql lo reflejan?Sé que a veces me olvido de marcar una columna como clave principal y mis clases generadas deben actualizarse. –