如何使用 LinqToDB 使用多个 SQLite 数据库

How to use more than one SQLite databases using LinqToDB

我正在使用 LinqToDB 和 LinqToDB.SQLite 访问我应用程序中的数据库。 我的 WPF 应用程序中有两个独立且唯一的数据库。 我有两个连接字符串:

<add name="AddonManager" connectionString="Data Source=AddonManager.sqlite3" providerName="SQLite" />
<add name="AddonDb" connectionString="Data Source=AddonDb.sqlite3" providerName="SQLite" />

在代码中,我尝试使用以下代码访问第二个数据库 (AddonDb):

using (var dbContext = new DataModels.AddonDbDB())
{
    Guid newId = Guid.NewGuid();

    DataModels.Addon newAddon = new DataModels.Addon();
    newAddon.AddonGuid = newId.ToString();
    newAddon.AddonName = addonName;
    newAddon.GitUrl = gitUrl;

    dbContext.Insert(newAddon);

    return newId;
}

好像只引用了第一个连接字符串。如果我向上移动第二个连接字符串,它就可以工作。但是,这意味着无法访问具有相同问题的其他数据库。

我试图在第一行 AddonDbDB("AddonDb.sqlite3") 中尝试建立连接,但我遇到了它对 "configuration" 不满意的错误。我在文档中找不到任何甚至说拥有多个数据库甚至是一种选择甚至自定义连接字符串的内容。

有没有人运行以前接触过这个?诚然,我研究了非常小的一组 SQLite 示例,并尝试了不同的连接字符串组合。我搜索了 "configuration" 可能可以接受的内容,但只有很少的信息。

为什么不将它们放在一个数据库中呢?因为一个是从 "the cloud"(列表)下载的,另一个总是存储在本地(设置和个性化的东西)。因此需要两个数据库。

"configuration" - 它是配置文件中连接字符串的名称。在您的情况下,您有 2 个配置:"AddonManager""AddonDb"

在代码中你可以做到这一点

using ( var dbContex = new DataModels.AddonDbDB("AddonManager") )
{
    // your queries
}