Frage

Ich habe (nach einigem erheblichen Aufwand) bekommt DbLinq mit der neuesten Version von Mono arbeiten OS X.

Hat jemand successfulyl erstellte Datenbank Einheiten über DbLinq / SQLite?

Zum Beispiel, ich habe die folgende Tabelle:

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

Ich habe meine * CS-Datei erzeugt und den folgenden Code verwenden, um zu versuchen einen neuen Usertype-Eintrag zu erstellen:

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

db.UserType.InsertOnSubmit(newUserType);

db.SubmitChanges();

Der Aufruf von SubmitChanges wird eine Ausnahme über ungültige Syntax werfen speziell im Zusammenhang mit @ (Ich bin in einer parametrisierten Abfrage zu raten, den Einsatz zu tun). Es sieht aus wie der Code generiert wird SQL Server spezifisch ist. Gibt es eine Lösung oder Flag fehlt mir, oder Aufzeichnungen über DbLinq zu SQLite nicht unterstützt Einfügen?

War es hilfreich?

Lösung

Es stellte sich heraus, dass, wenn DbLinq verwenden, müssen Sie den DB Verbindungsstring so Monos System.Data.Linq weiß zu verwenden, die DB-Provider ändern, wenn seine SQL-Code zu erzeugen.

Alt:

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

Neu:

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

Es ist so einfach wie das.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top