Я пытаюсь использовать Sqlite
с моим C# Console App
, но при попытке добавить Entity-Framwork data model
я получаю следующее сообщение:Использование Entity Framework-с Sqlite
Ваш проект ссылается на последнюю версию Entity Framework; однако поставщик базы данных Entity Framework, совместимый с этой версией, не найден для вашего подключения к данным. Если вы уже установили совместимый поставщик, убедитесь, что вы выполнили перестройку своего проекта перед выполнением этого действия. В противном случае выйдите из мастера, установите совместимый провайдер и перестройте проект перед выполнением этого действия.
Шаги для воспроизведения:
- Добавить новый
.NET 4
Console Application
- Установите
System.DataBase.SQLite (x86/x64) Nuget package
(которая автоматически устанавливаетEntity-Framwork
пакет как зависимость) - Добавить
ADO.NET Entity Data Model
с добавления нового элемента диалога
после выполнив описанные выше действия следующих app.config
были созданы:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<system.data>
<!--
NOTE: The extra "remove" element below is to prevent the design-time
support components within EF6 from selecting the legacy ADO.NET
provider for SQLite (i.e. the one without any EF6 support). It
appears to only consider the first ADO.NET provider in the list
within the resulting "app.config" or "web.config" file.
-->
<DbProviderFactories>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
<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" />
</DbProviderFactories>
</system.data>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, 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" />
</providers>
</entityFramework>
</configuration>
и следующий packages.config
:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.1.1" targetFramework="net40" />
<package id="System.Data.SQLite" version="1.0.94.1" targetFramework="net40" />
<package id="System.Data.SQLite.Core" version="1.0.94.0" targetFramework="net40" />
<package id="System.Data.SQLite.EF6" version="1.0.94.0" targetFramework="net40" />
<package id="System.Data.SQLite.Linq" version="1.0.94.1" targetFramework="net40" />
</packages>
То, что вы сделали только позволяет код первого развития. Вам также нужно установить инструменты SQLIte VS, загрузить с сайта system.data.sqlite.org – ErikEJ
Я ищу подходящую загрузку, но не смог ее найти. не могли бы вы указать на правильное направление ('VS 2013',' .NET 4.0')? – Yoav
Имя загрузки - sqlite-netFx451-setup-bundle-x86-2013-1.0.94.0.exe на http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki – ErikEJ