私はEntity Framework Core(RC1)でSQLiteを使用しています。Entity Frameworkを使用してSQLiteでスレッドモードを設定する方法は?
私は、そのSQLite supports three different threading modes: Single-thread, Multi-thread and Serializedを読んだ。
データベースでどのモードを使用したいのですか。実行時にどのように設定しますか?
私はEntity Framework Core(RC1)でSQLiteを使用しています。Entity Frameworkを使用してSQLiteでスレッドモードを設定する方法は?
私は、そのSQLite supports three different threading modes: Single-thread, Multi-thread and Serializedを読んだ。
データベースでどのモードを使用したいのですか。実行時にどのように設定しますか?
Microsoft.Data.Sqlite
公式SQLite
NuGetパッケージを参照してください。このパッケージには、SQLITE_THREADSAFE=1
(Serialized)でコンパイルされたSQLiteのバージョンが含まれています。 Microsoft.Data.Sqlite
は現在、これを変更するためのAPIを公開しておらず、System.Data.SQLite
も行っていません。
aspnet/EntityFramework#5466も参照してください。
これは、適切なフラグが設定されたデータベースを開くことによって実行されます。マルチスレッドの場合はSQLITE_OPEN_NOMUTEX
、シリアル化の場合はSQLITE_OPEN_FULLMUTEX
です。フラグ設定は、Cインタフェースを介して利用可能であるように見えます:
https://www.sqlite.org/c3ref/c_open_autoproxy.html
ですから、直接Cインタフェースを使用していない場合、あなたはEFの慈悲で、彼らは上の設定フラグをサポートすることを決定したかどうかですデータベースオープン。
今後、スレッドセーフオプションを設定する可能性はありますか? – Andrew