繁体   English   中英

在System.Data.Sqlite(.net)中启用共享缓存模式

[英]Enable shared cache mode in System.Data.Sqlite (.net)

我正在寻找一种在使用SQLite的System.Data.SQLite包装器时启用共享缓存模式的方法。

我查看了这个项目的源代码,看到它在UnsafeNativeMethods.cs内部暴露给程序集:

internal static extern SQLiteErrorCode sqlite3_enable_shared_cache(
    int enable);

不幸的是,我不能使用这种方法,因为它是内部的。

有人有解决方案吗?


回复最受赞赏。 谢谢!

仅供参考,在使用SQLiteConnectionStringBuilder API时,通过以下方式启用共享缓存:

var builder = new SQLiteConnectionStringBuilder();
...
builder.Add("cache", "shared");

您可以在连接字符串中启用共享缓存:

var connection = new SQLiteConnection("FullUri=file:mydb.sqlite?cache=shared");

SQLite使用PRAGMA语句来修改数据库操作。 这些语句特定于SQLite。 PRAGMA语句可以是任何内容,从启用外键,更改模式版本到设置共享缓存选项( 此处提供完整的编译指令命令列表)使用Pragma语句我知道有两种方法可以执行它们。 1)当实例化连接字符串或2)作为命令加载时

1)在实例化期间

new SQLiteConnection("Data Source=c:\mydb.db;Version=3;cache=shared");

2)单独的命令Pragma语句可以像任何普通的数据库命令sqliteConnection.Open()一样执行;

var cmd = new SQLiteCommand("PRAGMA cache=shared",sqliteConnection);
cmd.ExecuteNonQuery();

另一个值得一看的问题: SQLite SharedCache MultiThread Reads

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM