异步处理的局限性

SQLite 不支持异步 I/O。 异步 ADO.NET 方法将在 Microsoft.Data.Sqlite 中同步执行。 避免给他们打电话。

请改用 预写日志记录 来提高性能和并发性。

var connection = new SqliteConnection("Data Source=AsyncSample.db");
connection.Open();

// Enable write-ahead logging
var walCommand = connection.CreateCommand();
walCommand.CommandText =
@"
    PRAGMA journal_mode = 'wal'
";
walCommand.ExecuteNonQuery();

小窍门

默认情况下,在使用 Entity Framework Core 创建的数据库上启用预写日志记录。