簡體   English   中英

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

[英]SQL.Data.SqlLite version with NHibernate 2.1

NHibernate可以使用SQLLite的哪個版本/實現。 我收到一個錯誤:

無法找到程序集SQLite.NET中的IDbCommand和IDbConnection實現。 確保程序集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>

我在Window XP盒子上運行它。

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

我在Windows 7 x64上遇到了同樣的問題,如果是這樣的話; 下載SQLite的二進制發行版( http://sqlite.phxsoftware.com/ )並引用x64版本。

麻風解決了:

如果從NHibernate的lib \\ NHibernate \\ Configuration_Templates文件夾中獲取配置模板,則必須從此URL獲取sqllite的dll http://sourceforge.net/projects/adodotnetsqlite/這是SQLite,驅動程序是NHibernate.Driver。 SQLiteDriver。 但正如該網站所說這個項目已經死亡。

所以你從這個url或者從FluentNhibernate lib文件夾http://sourceforge.net/projects/sqlite-dotnet2/下載新的System.Data.SQLite.DLL,驅動程序是NHibernate.Driver.SQLite20Driver

在驅動程序名稱中看到20?

無論如何,盡管我可能澄清了這個謎團。

我得到了這個,但它只是我沒有在我的測試項目中的引用上設置CopyLocal = True。

我也遇到了這個錯誤,它真的讓我發瘋了。 但是我已經解除了它。並與你分享,它可以幫助你看到這個鏈接

在VS2010中嘗試使用SQLite的Castle ActiveRecord時遇到此錯誤。 通過遵循此說明並將目標框架從.NET 4更改為.NET 3.5來解決此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM