System.Data.SQLite内存数据库多线程

前端之家收集整理的这篇文章主要介绍了System.Data.SQLite内存数据库多线程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用连接字符串as创建一个System.Data.sqlite内存数据库

"Data Source=:memory:",

并希望在多线程之间访问此数据库.

现在我要做的是克隆sqliteConnection对象并将副本传递给工作线程.

但我发现不同的线程实际上获得了内存数据库的单个实例,而不是共享实例.如何在线程之间共享一个内存数据库

谢谢!

解决方法

基于用于内存数据库sqlite documentation,我将尝试使用URI文件名约定文件:: memory:?cache = shared等命名的数据源,而不是:memory :(并特别注意所有连接所在的缓存名称)告诉使用).正如页面上所解释的那样,a:memory:的每个实例都是彼此不同的,正如你所发现的那样.

请注意,在与内存数据库建立连接之前,您可能还必须首先启用共享缓存模式(如shared cache documentation中所指定的,调用sqlite3_enable_shared_cache(int)以使其工作.

猜你在找的Sqlite相关文章