#sqlite #entity-framework #ado.net #visual-studio-2019 #system.data.sqlite
Вопрос:
Я пытаюсь добавить SQLite с ADO.Net, и я действительно борюсь с этим.
Это пакеты, которые я установил:
- Заглушка.Система.Данные.SQLite.Ядро.Сетевая структура 1.0.115
- System.Data.SQLite 1.0.115
- System.Data.SQLite.Ядро 1.0.115
- System.Data.SQLite.EF6 1.0.115
- System.Data.SQLite.Linq 1.0.115
- Структура организации 6.4.4 Я создал базу данных с помощью dbBrowser и разместил ее в приложении.
Что бы я ни делал, я просто не могу понять, в чем связь:Я посмотрел на это, однако ему 6 лет.
Я тоже пробовал это, но безуспешно.
На веб-сайте system.data.sqlite упоминается: «Пакеты установки, которые содержат компоненты времени разработки для Visual Studio, больше официально не поддерживаются». Так как же?
Что я упускаю? Как мы используем sqlite с ado.net в vs2019?
Комментарии:
1. установите поставщика DDEX
2. «Пакеты установки, которые содержат компоненты времени разработки для Visual Studio, больше официально не поддерживаются», что означает «Загрузить последнюю версию sqlite-netFx46-setup-bundle-x86-2015-1.0.xxx.0.exe» больше не действует. Я полагаю, что это было связано с изменением vs2019 в августе (?)
3. установите это расширение: vsixgallery.com/extension/41521019-e4c7-480c-8ea8-fc4a2c6f50aa
4. Вы были правы. Ошибка, которую я совершил, заключалась в установке 64-разрядной версии, в то время как для visual studio требуется 32. Спасибо, МагикАндре.
5. хорошо, опубликуйте ответ, что вы сделали в деталях, чтобы помочь другим
Ответ №1:
Установка Sqlite с ado.net на WPF .Проект NET Framework относительно прост, если вы знаете шаги. Спасибо MagicAndre за руководство. Вот и мы:
1 — Установите набор инструментов отсюда. Это прямолинейно.
2 — Установите GAC отсюда. Теперь вот где я потерпел неудачу. Я устанавливал только 64-разрядный пакет, в то время как 32 необходим для GAC. Так что скачивайте и устанавливайте:
- sqlite-netFx46-setup-bundle-x86-2015-1.0.115.0.exe
- sqlite-netFx46-setup-bundle-x64-2015-1.0.115.0.exe При установке 32-разрядного пакета будьте осторожны, чтобы проверить, как показано на рисунке ниже:
3 — Если вы еще не создали свою БД, скачайте браузер БД отсюда. Создайте свою базу данных, поместите копию в свой проект и включите ее. Вы можете настроить действие сборки на контент, если собираетесь распространять приложение позже.
4 — Создайте решение в visual studio и установите nugget: System.Data.SQLite: Это автоматически установит остальные 4 пакета, а также EntityFramework
5 — В visual studio перейдите в проводник сервера, щелкните правой кнопкой мыши Подключения к данным, добавьте подключение
Измените свой источник данных на: Поставщик SQLite (Простой для EF6 от ErikEJ) (Поставщик SQLite (Простой для EF6 от ErikEJ))
Откроется новое окно, строка строки подключения вверху будет в следующем формате:
Источник данных=»C:Users…ДокументыVisual Studio 2019Проектыsqlitesqlitedemo.db»;Версия=3;
Источник данных=путь;Версия=3;
Нажмите кнопку ОК, и соединение появится в проводнике сервера.
6 — ADO.NET:
Щелкните правой кнопкой мыши решение, добавить, добавить новый элемент. Перейдите в раздел Данные и выберите ado.net Конструктор EF из базы данных (сначала база данных), и ваше соединение должно появиться:
Нажмите кнопку Далее, выберите все необходимые таблицы и нажмите кнопку Готово. Затем ваш файл edmx будет подготовлен и открыт.
7 — В разделе EntityFramework вашего приложения.config должны быть следующие строки:
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
Ниже должен быть раздел system.data в виде:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite.EF6" />
<add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
Наконец, если вы собираетесь использовать внешние ключи, добавьте:
Foreign Key Constraints=On;
между путем и версией строки подключения в файле app.config.
Я думаю, что с этого и нужно начинать. Удачи.