powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DbContext подключение по умолчанию к SQLite
6 сообщений из 6, страница 1 из 1
DbContext подключение по умолчанию к SQLite
    #39033795
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема:
Не получается явно указать строку подключения к БД SQLite.
Подробности:
Есть много БД, пользователь сам выбирает к какой коннектиться.
Поэтому, указывать все в файле Web.config не реально.
Нужно в DbContext явно указывать строку подключения к SQLite.
Код:
DbContext:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
    public class DbConnectionSklad : DbContext
    {
        //Передача строки соединения
        public DbConnectionSklad(string connString) : base(connString) { }

        //Models
        public DbSet<...> ... { get; set; }
        //...
    }


Подключение (тут ошибка):
Код: c#
1.
2.
3.
4.
5.
6.
using (DbConnectionSklad db = new DbConnectionSklad("Data Source=|DataDirectory|\base001.db;New=False;Version=3;foreign keys=true;"))
{
    db.Database.Connection.Open(); // - тут вылетает ошибка. Как выяснил "ОНО" коннектится к MS SQL, а не к SQLite

    //...
}



Как выяснил "ОНО" коннектится к MS SQL, а не к SQLite
То есть надо как-то прописать providerName :
Код: c#
1.
providerName="System.Data.SQLite"



Подскажите, как это сделать в DbContext ?
...
Рейтинг: 0 / 0
DbContext подключение по умолчанию к SQLite
    #39033807
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin,

...так а что, пользователь сам руками вбивает строку подключения? .. если нет, то в чем нереальность прописать строки подключения в WebConfig, и обращаться к ним по имени?
...
Рейтинг: 0 / 0
DbContext подключение по умолчанию к SQLite
    #39033820
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
carrotik
Базу выбирает по номеру: 1, 2, 3, ... Можно по номеру месяца, года и т.д. Да и какая разница как?
А строка соединения создаётся автоматически.

Кстати в нете мало инфы на этот счет, хотя вопросов очень много, а ответов нет.
А решение оказалось простое:
Код: c#
1.
public DbConnectionSklad(string connString) : base(new System.Data.SQLite.SQLiteConnection() { ConnectionString = connString }, true) { } 



П.С. И всё методом "научного тыка".
...
Рейтинг: 0 / 0
DbContext подключение по умолчанию к SQLite
    #39034223
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin,

есть специальная построители строк подключения: базовй класс DbConnectionStringBuilder и производные от него для каждой СУБД.
Есть SQLiteConnectionStringBuilder. С помощью него и создавать строки подключения динамически.
...
Рейтинг: 0 / 0
DbContext подключение по умолчанию к SQLite
    #39034266
e24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
e24
Гость
petalvikSQLiteConnectionStringBuilder
Не работает.
...
Рейтинг: 0 / 0
DbContext подключение по умолчанию к SQLite
    #39034887
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLiteConnectionStringBuilder ничего не решает. Там просто указывается строка подключения, просто более комфортно и не более.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / DbContext подключение по умолчанию к SQLite
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]