.net SQLite:如何连接到内存中的共享缓存数据库?

.net SQLite:如何连接到内存中的共享缓存数据库?,.net,sqlite,ado.net,.net,Sqlite,Ado.net,我正在通过ADO.NET提供程序尝试SQLite 3.7.13的内存共享缓存功能。 以下连接字符串起作用,但会生成非共享缓存数据库: Data Source=:memory: 当我尝试以下任何一种方法时: Data Source=:memory:?cache=shared Data Source=file::memory:?cache=shared Data Source=file:x?mode=memory&cache=shared 打开连接时,我得到以下ArgumentExcep

我正在通过ADO.NET提供程序尝试SQLite 3.7.13的内存共享缓存功能。 以下连接字符串起作用,但会生成非共享缓存数据库:

Data Source=:memory:
当我尝试以下任何一种方法时:

Data Source=:memory:?cache=shared
Data Source=file::memory:?cache=shared
Data Source=file:x?mode=memory&cache=shared
打开连接时,我得到以下
ArgumentException

Invalid ConnectionString format for parameter "Data Source"

SQLite内存中共享缓存数据库的连接字符串应该是什么样子?

尽管共享缓存功能在SQLite中,但最新(1.0.81.0)版本的System.Data.SQLite当时还不支持FullUri功能。看起来1.0.82.0版本可以正常工作,连接字符串应为:

FullUri=file::memory:?cache=shared

我有1.0.99版,它必须是ToFullPath:
FullUri=file::memory:?cache=shared;ToFullPath=false
@xmedeko:谢谢。有点糟糕,他们没有使其向后兼容。我们无法让“FullUri”与Sqlite一起工作,但在这里找到了解决方案::
“DataSource=file:memdb1?mode=memory&cache=shared”
非常感谢!这帮了大忙!我对您的解决方案做了一些修改,并使用了以下内容,它还为数据库提供了一个名称:
FullUri=file:memdb\u name?mode=memory&cache=shared
。然后可以通过
ATTACH数据库“file:memdb_name?mode=memory&cache=shared”作为sharedInMemoryDB