Версия SQL.Data.SqlLite с NHibernate 2.1 - PullRequest
       15

Версия SQL.Data.SqlLite с NHibernate 2.1

4 голосов
/ 22 сентября 2009

Какую версию / реализацию SQLLite можно использовать с NHibernate. Я получаю ошибку:

IDbCommand и IDbConnection реализация в сборке SQLite.NET не может быть найден. обеспечивать что такое сборка SQLite.NET находится в каталоге приложения или в глобальном кэше сборок. Если сборка в GAC, используйте элемент в файл конфигурации приложения для укажите полное название сборки.

Позвольте мне сказать, что dll находится в каталоге bin, я убедился. Я использую System.Data.SQLite.DLL версии 1.0.60.0.

Вот файл hibernate.cfg.xml

    <property name="connection.driver_class">
        <!--NHibernate.Driver.SqlClientDriver-->
        NHibernate.Driver.SQLiteDriver
    </property>
     <property name="connection.connection_string">
        <!--    Server=.\SQLEXPRESS;User Id=epitka;Password=password;Database=dnn49;-->
        Data Source=nhibernate.db;Version=3
  </property>
  <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>

  <property name="query.substitutions">true=1;false=0</property>

  <property name="show_sql">true</property>

Я запускаю это на Windows XP box.

Ответы [ 6 ]

3 голосов
/ 22 сентября 2009

У меня была такая же проблема в Windows 7 x64 , если это так; загрузите двоичный дистрибутив SQLite (http://sqlite.phxsoftware.com/) и обратитесь к версии x64.

3 голосов
/ 22 сентября 2009

IDbCommand и IDbConnection находятся в пространстве имен System.Data, а не в SQLite. Не могли бы вы опубликовать свои настройки конфигурации nhibernate?

Вот соответствующие настройки

dialect = NHibernate.Dialect.SQLiteDialect, NHibernate
connection.driver_class = NHibernate.Driver.SQLite20Driver, NHibernate

SQLite20Driver предназначен для System.Data.SQLite, а SQLiteDriver - для SQLite.NET. Так что SQLite20Driver - ваш ответ.

2 голосов
/ 23 сентября 2009

Тайна решена:

Если вы получаете шаблон конфигурации из папки lib \ NHibernate \ Configuration_Templates NHibernate, они должны получить dll для sqllite по этому URL http://sourceforge.net/projects/adodotnetsqlite/, который является SQLite, а драйвер - NHibernate.Driver.SQLiteDriver. Но, как говорится на сайте, этот проект умер.

Итак, вы идете и скачиваете новую System.Data.SQLite.DLL с этого URL-адреса или из папки FluentNhibernate lib. http://sourceforge.net/projects/sqlite-dotnet2/ и драйвером является NHibernate.Driver.SQLite20Driver

Видите, что 20 в имени драйвера?

Во всяком случае, хотя я мог бы прояснить тайну.

1 голос
/ 14 января 2011

Я получил это также, но просто я не установил CopyLocal = True на свои ссылки в моем тестовом проекте.

0 голосов
/ 01 ноября 2012

Я также столкнулся с этой ошибкой, это действительно сводит меня с ума. но я восстановил это. И делюсь с вами, пусть это поможет вам Смотрите эту ссылку

0 голосов
/ 29 января 2010

Получил эту ошибку, пытаясь Castle ActiveRecord с SQLite в VS2010. Решил это, следуя этой инструкции и изменив целевую платформу с .NET 4 на .NET 3.5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...