SQLiteって同時接続できない

当たり前のことなのですが、気付かずにいました。C#とPostgresで作成したシステムをSQLiteへ載せ替え中に、データベース周りのテストにあるMS-DTCで "The database file is locked"というエラーにぶつかりいろいろい調べて初めて気づきましたよ。

主に調べたのはこちら。

The database file is locked - System.Data.SQLite

同時にトランザクションを走らせたり、IDisposeを実装しているのにDisposeしていないものはないか?などなど様々な指摘が飛び交っていますね。

ほとんど開発経験のないAndroidでは基本的に単一のアプリがDatabaseへのアクセスを行うので動じ実行性など考える余地がなかったのですが、Windowsアプリなどで便利なストレージとして利用する場合にはこの辺は注意が必要ですね。