Criar registros com Linq para SQLite via DbLinq
Pergunta
Eu tenho (após algum esforço significativo) obtido DbLinq trabalhar com a última versão do Mono no OS X.
Alguém successfulyl criado entidades de banco de dados via DbLinq / Sqlite?
Por exemplo, eu tenho a seguinte tabela:
CREATE TABLE UserType (
id integer primary key,
description text )
I geraram minha ficheiro.cs * e estou usando o seguinte código para tentar criar uma nova entrada UserType:
UserType newUserType = new UserType();
newUserType.id = null // Attempting to get SQLite to increment
newUserType.description = "Administrator";
db.UserType.InsertOnSubmit(newUserType);
db.SubmitChanges();
A chamada para SubmitChanges é lançar uma exceção sobre sintaxe inválida especificamente relacionados com @ (eu estou supondo que em uma consulta parametrizada para fazer a inserção). Parece que o código que está sendo gerado é específico SQL Server. Existe uma correção ou bandeira que estou em falta, ou está inserindo registros através DbLinq para SQLite não suportado?
Solução
Acontece que quando se utiliza DbLinq, é necessário modificar a seqüência de conexão DB tão System.Data.Linq de Mono sabe qual provedor de banco de dados para usar ao gerar o código SQL.
antiga:
SqliteConnection("Data Source=MyDatabase.sqlite");
Novo:
SqliteConnection("DbLinqProvider=Sqlite;Data Source=MyDatabase.sqlite");
É tão simples como isso.