Я пытаюсь использовать Entity Framework с SQLite. У меня возникли проблемы с интеграцией его в основное приложение, поэтому я начал немного проверять с нуля, точно следуя указаниям http://brice-lambson.blogspot.com/2012/10/entity-framework-on-sqlite.html
После того как все сказано и сделано, я получаю следующую ошибку при запуске проекта:
Нет провайдера инфраструктуры Entity Framework для поставщика ADO.NET с инвариантное имя "System.Data.SQLite". Убедитесь, что поставщик зарегистрированный в разделе "entityFramework" в конфигурации приложения файл. Подробнее см. http://go.microsoft.com/fwlink/?LinkId=260882. информация.
Мой 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" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description="Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="ChinookContext"
connectionString=
"Data Source=|DataDirectory|Chinook_Sqlite_AutoIncrementPKs.sqlite"
providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>
Затем я увидел его сообщение о Entity Framework 6. Хотя это была не точная ошибка, которую я получал, я попытался установить его обновленного поставщика через NuGet. Ошибка исчезла, но заменилась на следующую:
Не удалось загрузить файл или сборку 'System.Data.SQLite.Linq, Версия = 2.0.88.0, Культура = нейтральная, PublicKeyToken = db937bc2d44ff139 'или одной из его зависимостей. Установленное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Кроме того, мой 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" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<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" type="System.Data.SQLite.SQLiteProviderServices, System.Data.SQLite.Linq, Version=2.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description="Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
<remove invariant="System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="ChinookContext" connectionString="Data Source=|DataDirectory|Chinook_Sqlite_AutoIncrementPKs.sqlite" providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>
Я пробовал все, что мог придумать для устранения этих ошибок, ничего не сработало. Я пробовал использовать другие двоичные файлы SQLite; Я попытался вручную отредактировать проект SQLite для использования EF версии 6; Я изменил архитектуры, я добавил и удалил пакеты nuget снова и снова и т.д.
Я не знаю, куда идти отсюда.