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

时间:2016-06-14 13:54:17

标签: multithreading sqlite entity-framework-core

我使用SQLite和Entity Framework Core(RC1)。

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

如何在运行时设置我想用于数据库的模式?

2 个答案:

答案 0 :(得分:2)

Microsoft.Data.Sqlite引用官方SQLite NuGet包。该软件包包含一个使用SQLITE_THREADSAFE=1(序列化)编译的SQLite版本。 Microsoft.Data.Sqlite目前没有公开API来更改此内容,System.Data.SQLite也没有。

另见aspnet/EntityFramework#5466

答案 1 :(得分:1)

通过打开具有相应标志集的数据库来完成。多线程SQLITE_OPEN_NOMUTEX或序列化SQLITE_OPEN_FULLMUTEX。看起来标志设置可通过C接口获得:

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

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