Entity FrameworkでSQLiteのスレッドモードを設定するには?

entity-framework-core multithreading sqlite

質問

Entity Framework Core(RC1)でSQLiteを使用しています。

SQLiteはシングルスレッド、マルチスレッド、シリアライズという3つの異なるスレッドモードをサポートしています

実行時にどのように設定すればよいですか?データベースでどのモードを使用したいですか?

受け入れられた回答

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の慈悲と、データベースオープン時にフラグ設定をサポートすることを決定したかどうかがわかります。



Related

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