Получите SQLite для работы с VS2013 Data Model Designer

Я очень внимательно следил за этим прекрасным учебником о том, как соединить SQLite с Visual Studio 2013, но когда я попадаю в часть учебника Entity Data Model Wizard, я не вижу своего соединения SQLite или поставщика SQLite, есть только варианты для SQL Server.

Я очень внимательно следил за этим руководством, я даже пытался установить SQL Server Compact/SQLite Toolbox, скомпилировать проект для x86, установить инструменты Entity Framework Visual Studio, но ничего не произошло.

Мой packages.config выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="CommonServiceLocator" version="1.2" targetFramework="net45" />
  <package id="EntityFramework" version="6.1.2" targetFramework="net45" />
  <package id="NodaTime" version="1.3.0" targetFramework="net45" />
  <package id="Prism" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Composition" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Interactivity" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Mvvm" version="1.0.0" targetFramework="net45" />
  <package id="Prism.PubSubEvents" version="1.0.0" targetFramework="net45" />
  <package id="System.Data.SQLite.Core" version="1.0.94.0" targetFramework="net45" />
  <package id="System.Data.SQLite.EF6" version="1.0.94.0" targetFramework="net45" />
</packages>

какие-либо советы по этому поводу?


РЕДАКТИРОВАТЬ 1:

Я как бы перехожу на SQL Server CE 4.0, хотя это устарело. Я предпочитаю SQLite из-за отсутствия ограничения в 4Gb, но я не могу заставить его работать, и я прочитал, что EF не интегрируется в него.

Но теперь у меня есть новая проблема, которая возникает как с SQL Server CE 4, так и с MySQL:

Ошибка для EF 6.1.2

Я ненавижу застрять в проекте для таких мелочей, как этот, кто-нибудь знает, как это решить?

4 ответа

Я столкнулся с этой проблемой сегодня утром (я следил за сообщением в блоге, на которое вы ссылались в исходной проблеме), и я нашел проблему и способы ее решения:

  1. Удалите пакет nuget для SqlLite EF6
  2. Удалите записи system.data из app.config
  3. Установите пакет nuget
  4. Только поместите два удаления и одно добавление в ваш app.config

    <DbProviderFactories>
      <remove invariant="System.Data.SQLite" />
      <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" />
    

  5. Теперь SQLLite будет отображаться в области подключения ADO.NET Entity Data Model.

Возможно, вам придется добавить второе "add" обратно в system.data, чтобы оно работало во время выполнения, так как я еще не дошел до этого.

У вас есть только 1.0.94 SQLite VS Tools, установленные в GAC?

Я получил мой проект для работы с SQL Server CE 4.0, но не с SQLite.

У меня было два проекта под одним и тем же решением (один для самой программы, а другой для тестового проекта), и, очевидно, они как-то конфликтовали друг с другом. Я удалил все ссылки EF и SQLCE4 из nuget и т. Д. Из обоих проектов и ТОЛЬКО добавил их обратно в мой программный проект. Когда он работал должным образом, я добавил его в тестовый проект. Мне удалось запустить мастер Entity Data Model Wizard, и, видимо, все хорошо, но я до сих пор не выполнял никаких операций EF.

Я действительно занят другим проектом, поэтому у меня не так много времени, чтобы полностью протестировать его, выполнить некоторые операции CRUD и даже попробовать его на SQLite. Я провел быстрый тест, используя новое свежее решение, и, очевидно, SQLite и SQLSeverCE4 работают, когда я добавил их в консольное приложение, я добавил их и сгенерировал мастер Entity Data Model Wizard, как указано в руководстве. НО в моем проекте в настоящее время я не могу проверить SQLite на ограничения по времени. Я хочу дать вам более полный ответ, когда у меня будет больше времени, но пока это все, что я могу проверить.

Я также следовал руководству, все проверяйте также в комментариях. Чего не хватало в моей системе (Visual Studio 2015, Entitiy Framework 6.1.3 и sqlite 1.0.103 в качестве пакетов nuget, так это добавление следующих строк в App.config в раздел "entityFramework / Providers" (я добавил его после стандарта: provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer")

<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />

После этого уже включенное соединение с sqlite в обозревателе серверов (это уже работало) стало стандартным для Entity Framework.

Другие вопросы по тегам