Mono + SQLite +挿入時の大まかなSQLite例外

dapper mono sqlite3

質問

私はMono、SQLite、Dapper&Dapper Extensionsを使用しています。私はデータベースから読むことができますが、挿入は機能していません。私はsqlite用にMono Driverを使用しています。

エラーは私にはあまり知られていません。どんな助けでも大歓迎です。

エラー:

SQLite error
near ".": syntax error
at Mono.Data.Sqlite.SQLite3.Prepare (Mono.Data.Sqlite.SqliteConnection cnn, System.String strSql, Mono.Data.Sqlite.SqliteStatement previous, UInt32 timeoutMS,    System.String& strRemain) [0x00000] in <filename unknown>:0 
at Mono.Data.Sqlite.SqliteCommand.BuildNextCommand () [0x00000] in <filename unknown>:0

テストコード:

public void can_add_a_service_record()
    {
        var provider = new Provider { Name = "Hotmail" };
        int id = providerData.Insert(provider);         
        Assert.AreEqual("Hotmail", providerData.Get(id).Name);  
    }

挿入するコードは次のとおりです。

public virtual int Insert (TEntity entity)
    {
        var connection = SqlHelper.GetConnection();         
        int id = connection.Insert<TEntity>(entity);
        connection.Close();
        return id;
    }

ありがとう

Chirdeep

受け入れられた回答

私にとってこれはDapperの問題ではなく、Dapper 拡張の問題のように見えます。特に、私は実装されたSqliteの方言を見ることができません: https : //github.com/tmsmith/Dapper-Extensions/tree/master/DapperExtensions/Sql

解決するにはDapper Extensionsプロジェクト(Dapperと全く別のもの)のパッチを提出するか、Dappeの上に別のラッパーを使用するか、ラッパーなしでDapperを使用することをお勧めします。

たとえば、次のように動作します。

var id = cnn.Query<int>("insert cars values(@name); select last_insert_rowid()", 
   new {name = "bmw"});


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ