带有NHibernate 2.1的SQL.Data.SqlLite版本

带有NHibernate 2.1的SQL.Data.SqlLite版本,nhibernate,Nhibernate,什么版本/实现的SQLLite可以与NHibernate一起使用。我得到一个错误: IDB命令和IDbConnection 大会的执行情况 找不到SQLite.NET。确保 程序集SQLite.NET是 位于应用程序目录中 或在全局程序集缓存中。如果 程序集位于GAC中,请使用 中的元素 应用程序配置文件 指定程序集的全名 让我说dll在bin目录中,我确定了。 我使用的是System.Data.SQLite.DLL版本1.0.60.0 下面是hibernate.cfg.xml <

什么版本/实现的SQLLite可以与NHibernate一起使用。我得到一个错误:

IDB命令和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>

NHibernate.Driver.SQLiteDriver
数据源=nhibernate.db;版本=3
NHibernate.dialogue.sqlitedialogue
真=1;假=0
真的

我正在Windows XP box上运行此命令。

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就是你的答案。

如果是这样的话,我在Windows7x64上也遇到了同样的问题;下载SQLite()的二进制发行版并参考x64版本。

如果从NHibernate的lib\NHibernate\configuration\u Templates文件夹获取配置模板,则必须从该url获取sqllite的dll 它是SQLite,驱动程序是NHibernate.driver.SQLiteDriver。但正如网站上所说,这个项目已经失败了

因此,您可以从此url或FluentNhibernate lib文件夹下载新的System.Data.SQLite.DLL 驱动程序是NHibernate.driver.SQLite20Driver

看到司机名字里的20了吗


无论如何,尽管我可能会澄清这个谜团。

在VS2010中使用SQLite尝试Castle ActiveRecord时出错。通过遵循此说明并将目标框架从.NET 4更改为.NET 3.5解决了这个问题,我也得到了这个问题,但原因很简单,我在测试项目中的引用中没有设置CopyLocal=True