3

根据这篇文章的答案,它指出:

您是否知道除非您启用了共享缓存并且两个连接都来自同一个线程,否则 ReadUncommitted 将恢复为序列化隔离?

在 C# 中工作,然后我继续定义了一个 DLL 导入,如下所示:

[DllImport("System.Data.SQLite.dll", CallingConvention=CallingConvention.Cdecl)]
public static extern int sqlite3_enable_shared_cache(int enable);

我调用了这个函数来启用缓存,并在调用时获得了成功的结果状态 0。尽管如此,当执行以下几行并尝试将隔离级别设置为 ReadUncommitted 时,我仍然得到异常“isolationlevel”。

string connectionString = @"data source=d:\db\test.db3;datetimeformat=Ticks";
SQLiteConnection conn = new SQLiteConnection(connectionString);
conn.Open();
IDbTransaction tran = conn.BeginTransaction(IsolationLevel.ReadUncommitted);

这个问题与我在此处发布的另一个问题有关。

如何在 SQLite 中以 ReadUncommitted 隔离级别执行查询?

4

1 回答 1

2

要完成未提交的读取,请参阅以下问题和答案:

如何在不锁定数据库的情况下使用数据读取器执行 SQLite 查询?

于 2011-10-26T17:59:33.337 回答