Creare Records con LINQ to SQLite via DbLinq
Domanda
Ho (dopo qualche sforzo significativo) ottenuto DbLinq lavorare con l'ultima build di Mono su OS X.
Qualcuno ha creato successfulyl entità del database tramite DbLinq / Sqlite?
Per esempio, io ho la seguente tabella:
CREATE TABLE UserType (
id integer primary key,
description text )
Ho generato il mio file * .cs e sto utilizzando il seguente codice per tentare di creare una nuova voce UserType:
UserType newUserType = new UserType();
newUserType.id = null // Attempting to get SQLite to increment
newUserType.description = "Administrator";
db.UserType.InsertOnSubmit(newUserType);
db.SubmitChanges();
La chiamata alla SubmitChanges sta gettando un'eccezione sulla sintassi non valida in particolare riferibili alle @ (sto cercando di indovinare in una query con parametri per fare l'inserto). Sembra che il codice generato è SQL Server specifica. C'è una correzione o la bandiera che mi manca, o è l'inserimento di record attraverso DbLinq a SQLite non è supportato?
Soluzione
Risulta che quando si usa DbLinq, è necessario modificare la stringa di connessione DB così System.Data.Linq di Mono sa quale fornitore di DB da utilizzare quando si genera il codice SQL.
Vecchio:
SqliteConnection("Data Source=MyDatabase.sqlite");
SqliteConnection("DbLinqProvider=Sqlite;Data Source=MyDatabase.sqlite");
E 'così semplice come sembra.