Наконец, я понимаю, как разрешить 1.0.77 System.Data.SQLite сборки работать с Entity Framework и без размещения сборки в GAC.
Моя первая попытка подключиться к SQLite 1.0.77 привела к:
System.Data.ProviderIncompatibleException: после вызова метода GetService в экземпляре поставщика магазинатип 'System.Data.SQLite.SQLiteFactory'.Поставщик магазина может работать неправильно.
Анализ кода показал, что основная сборка System.Data.SQLite.dll не может найти System.Data.SQLite.Linq.dll .Вторая сборка была указана в проекте и существовала в папке вывода bin.Но ошибка не исчезла.Отражатель показал, что System.Data.SQLite.Linq.dll не имеет открытых классов.Таким образом, он никогда не загрузится автоматически в домен приложения, потому что нет кода, ссылающегося на него.Так что это должно быть только в GAC для правильной работы.Но ничто не может лишить нас возможности загрузить его вручную в домен приложения!Например, при запуске приложения:
Assembly.Load("System.Data.SQLite.Linq");
И это все!
Также не забудьте добавить следующие строки в конфигурацию вашего приложения:
<system.data>
<DbProviderFactories>
<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, Version=1.0.77.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/>
</DbProviderFactories>
</system.data>
Надеюсь, что мой опыт будет полезным.