DbLinq経由のSQLiteへのLINQを持つレコードを作成します。
質問
私は(いくつかの重要な努力の後に)OS X上のMonoの最新ビルドでの作業DbLinqを頂いております。
誰もがDbLinq / Sqliteを経て作成されたデータベース・エンティティをsuccessfulylていますか?
たとえば、私は以下の表を持っています:
CREATE TABLE UserType (
id integer primary key,
description text )
私は私の*は.csファイルを生成しているし、新しいのUserTypeエントリを作成しようとするには、次のコードを使用しています:
UserType newUserType = new UserType();
newUserType.id = null // Attempting to get SQLite to increment
newUserType.description = "Administrator";
db.UserType.InsertOnSubmit(newUserType);
db.SubmitChanges();
でSubmitChangesの呼び出しは(私は挿入を行うには、パラメータ化クエリで推測している)の特にを@に関連した無効な構文について例外をスローしています。生成されたコードは、SQL Server固有であるように見えます。修正やフラグがあり、私が欠けている、またはSQLiteのにDbLinqてレコードを挿入されていないサポートされていますか?
解決
はDbLinqを使用しているとき、あなたはMonoのSystem.Data.Linqは、そのSQLコードを生成するときに使用するDBプロバイダを知っているので、DB接続文字列を変更する必要があることが判明します。
旧ます:
SqliteConnection("Data Source=MyDatabase.sqlite");
新規ます:
SqliteConnection("DbLinqProvider=Sqlite;Data Source=MyDatabase.sqlite");
それはそれと同じくらい簡単です。
所属していません StackOverflow