Visual Studio 2019 — WPF .Net Framework 4.8 — Добавление SQLite с ADO.NET

#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.

Я думаю, что с этого и нужно начинать. Удачи.