Créer des enregistrements avec LINQ to SQLite via DbLinq
Question
J'ai (après un effort significatif) obtenu DbLinq travailler avec la dernière version de Mono sur OS X.
Quelqu'un at-il des entités de base de données créée par successfulyl DbLinq / SQLite?
Par exemple, je le tableau suivant:
CREATE TABLE UserType (
id integer primary key,
description text )
J'ai généré mon dossier * .cs et je suis en utilisant le code suivant pour tenter de créer une nouvelle entrée UserType:
UserType newUserType = new UserType();
newUserType.id = null // Attempting to get SQLite to increment
newUserType.description = "Administrator";
db.UserType.InsertOnSubmit(newUserType);
db.SubmitChanges();
L'appel à SubmitChanges est de lancer une exception sur la syntaxe non valide spécifiquement lié à @ (Je devine que dans une requête paramétrées pour faire l'insert). On dirait que le code généré est spécifique à SQL Server. Y at-il une solution ou d'un drapeau que je suis absent, ou est l'insertion d'enregistrements par DbLinq à SQLite pas pris en charge?
La solution
Transforme que lors de l'utilisation DbLinq, vous devez modifier la DB chaîne de connexion si System.Data.Linq Mono sait quel fournisseur DB à utiliser lors de la génération de son code SQL.
Ancien:
SqliteConnection("Data Source=MyDatabase.sqlite");
Nouveau:
SqliteConnection("DbLinqProvider=Sqlite;Data Source=MyDatabase.sqlite");
Il est aussi simple que cela.