Pregunta

Tengo (después de algún esfuerzo significativo) DbLinq conseguido trabajar con la última versión de Mono en OS X.

¿alguien se ha creado successfulyl entidades de base de datos a través de DbLinq / SQLite?

Por ejemplo, tengo la siguiente tabla:

CREATE TABLE UserType (
    id integer primary key,
    description text )

He generado mi archivo .cs * y estoy usando el siguiente código para intentar crear una nueva entrada de tipo de usuario:

UserType newUserType = new UserType();
newUserType.id = null // Attempting to get SQLite to increment
newUserType.description = "Administrator";

db.UserType.InsertOnSubmit(newUserType);

db.SubmitChanges();

La llamada a SubmitChanges está lanzando una excepción sobre la sintaxis no válida específicamente relacionados con @ (supongo que en una consulta parametrizada que hacer el inserto). Parece que el código que se genera es específico de SQL Server. ¿Hay una solución o una bandera que me falta, o es la inserción de registros a través DbLinq a SQLite no es compatible?

¿Fue útil?

Solución

Resulta que cuando se utiliza DbLinq, es necesario modificar la cadena de conexión de base de datos de modo System.Data.Linq de Mono sabe qué proveedor de base de datos a utilizar al generar el código SQL.

antigua:

SqliteConnection("Data Source=MyDatabase.sqlite");

New:

SqliteConnection("DbLinqProvider=Sqlite;Data Source=MyDatabase.sqlite");

Es tan simple como eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top