3

Я хотел бы использовать SQLite с Entity Framework и Visual Studio 2013 Desktop Express.Как использовать EF с SQLite и Visual Studio 2013

Для этого у меня есть правая кнопка мыши по ссылке и установлен (с выбранным dependecies) «System.Data.SQLite (X86/x64)» (версия 1.0.94.1) NuGet пакеты

Теперь, если я добавить новый элемент в мой проект и выберите ADO.NET Entity Data Model Я не вижу поставщика SQLite: у меня есть только Microsoft SQL Server.

У меня есть .NET Framework 4.5.1 и Windows 7

Это мой App.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
</configSections> 
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
</startup> 
<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.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
      <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <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> 
+0

см. Мой блог здесь: http://erikej.blogspot.dk/2014/11/using-sqlite-with-entity-framework-6.html – ErikEJ

ответ

0

В то время как вы добавили NuGet пакеты для SQLite в свой проект, это совершенно отдельный к инструментарию Visual Studio, который будет использоваться для создания модели данных.

Вы можете установить поддержку среды выполнения для Visual Studio с http://system.data.sqlite.org/ - это должно позволить вам использовать поддержку Visual Studio для создания вашей модели.

3

Необходимо установить поставщика DDEX от http://system.data.sqlite.org, но версии Express не позволяют устанавливать какие-либо расширения, такие как поставщики DDEX.

Вы можете установить новое сообщество Visual Studio 2013. Там перейдите в «Инструменты», «Расширения и обновления», тип «sqlite ddex» в поле поиска и установите его.

0

я должен был добавить это в разделе Провайдеры Entity Framework:

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

Если следовать учебнику EricEJ, это должно работать для вас.