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

时间:2018-05-09 17:58:52

标签: c# wpf sqlite linq2db

我正在使用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”)中尝试连接,但我遇到了错误,它对“配置”不满意。我在文档中找不到任何东西,即使有多个数据库甚至是一个选项甚至是自定义连接字符串。

之前有人碰过这个吗?我已经挖掘了一套非常小的SQLite示例并尝试了不同的连接字符串组合。我搜索了什么“配置”可能是可以接受的,但只能获得很少的信息。

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

1 个答案:

答案 0 :(得分:3)

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

在代码中你可以这样做

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