如何使用 Entity Framework 在 SQLite 中设置线程模式?

How to set threading mode in SQLite with Entity Framework?

我正在使用带有 Entity Framework Core (RC1) 的 SQLite。

我读到 SQLite supports three different threading modes: Single-thread, Multi-thread and Serialized

如何设置在 运行-time 中,我想对我的数据库使用哪种模式?

这是通过打开一个设置了适当标志的数据库来完成的。 SQLITE_OPEN_NOMUTEX 用于多线程或 SQLITE_OPEN_FULLMUTEX 用于序列化。看起来可以通过 C 接口设置标志:

https://www.sqlite.org/c3ref/c_open_autoproxy.html

因此,如果您不直接使用 C 接口,您将受 EF 的支配,以及他们是否已决定支持在数据库打开时设置标志。

Microsoft.Data.Sqlite 引用 SQLitePCRaw.bundle_e_sqlite3 NuGet 包。该包包含已使用 SQLITE_THREADSAFE=1(序列化)编译的 SQLite 版本。 Microsoft.Data.Sqlite 目前没有公开 API 来改变这个,System.Data.SQLite.

也没有

另见 aspnet/EntityFramework#5466