Tengo un problema con las claves principales en Entity Framework cuando uso SQLite. SQLite quiere un NULL explícito en la lista de VALORES en una columna de clave primaria autoincrementing. En realidad, no he observado el SQL generado en el contexto EF, pero creo que va con la convención habitual de SQL Server de no proporcionar ningún valor para la columna de autoincrementing.SQLite con Entity Framework
Según el site para el proveedor ADO.NET SQLite, EF es totalmente compatible pero no encuentro ayuda allí. ¿Hay alguna manera de obligar a EF a insertar explícitamente un NULL para el valor de la clave primaria?
Estoy en la misma situación. He intentado reemplazar por mucho tiempo? en el código generado, así que al menos pude establecer el valor nulo, pero no funcionó. El mensaje de error fue: "Los cambios en la base de datos se realizaron correctamente, pero se produjo un error al actualizar el contexto del objeto. ObjectContext podría estar en un estado incoherente. Mensaje de excepción interno: los pares clave-valor que definen una EntityKey no pueden ser nulos o vacío. \ r \ nNombre del parámetro: registro ". Parece que no hay forma de eludir esto, la forma de manejar el autoincrement es algo extraño. – Pablote
Dejé de SQLite en combinación con EF. Hay una publicación sobre este mismo tema en los foros en el sitio de System.Data.Sqlite, pero no hubo ningún movimiento o respuesta durante un tiempo. Pasé a SQL Compact, que presenta sus propios problemas. No puede hacer "claves generadas por el servidor" con EF/SQLCompact. Entonces, por ahora hago ADO estándar de conexión/estilo de comando para inserciones y estoy usando EF para el azúcar LINQ. –
Esto apesta. Creo que el mismo "truco" podría ser utilizado en sqlite. Probé autoincrement con CE y linq con sql y parece funcionar. No lo he probado con sqlite, no estoy seguro si es posible. – Pablote