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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top