Как использовать более одной базы данных SQLite с помощью LinqToDB - PullRequest
0 голосов
/ 09 мая 2018

Я использую 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 голосов
/ 09 июня 2018

«конфигурация» - это имя вашей строки подключения в вашем конфигурационном файле. В вашем случае у вас есть 2 конфигурации: "AddonManager" и "AddonDb"

В коде вы можете сделать это

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