У меня была та же проблема, и вышеупомянутые решения не сработали для меня. Я думаю, что System.Data.SQLite изменился с тех пор.
Обратите внимание, что эта проблема характерна для случая, в котором все соответствуют следующим критериям:
- с использованием SQLite
- с System.Data.SqlLite
- на машине x64
- и NHibernate (2.1.2.4 в моем случае)
Этот кусок конфигурации в моем web.config (или app.config для моих модульных тестов) заставил его работать. Я должен был проверить сборку, чтобы убедиться, что он загружается правильно.
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly
partialName="System.Data.SQLite"
fullName="System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=AMD64" />
</assemblyBinding>
</runtime>
</configuration>
Где-то в своей внутренней структуре, во время отображения с использованием отсканированных сборок, NHibernate создает объект Assembly, используя его частичное имя в виде строки "System.Data.SQLite". Каким-то образом загруженная версия сборки x86.
Приведенная выше конфигурация убедилась, что использование частичного имени для загрузки сборки предоставит версию x64.