2012-11-09 72 views
5

我已經繼承了一個C#/ NHibernate/MS SQL Server項目,並且是NHibernate的新手。首先給我的任務之一是將數據庫從MS SQL Server(2008 R2)遷移到Postgresql 9.2。我正在使用Npgsql 2.0.12(.net 2.0版本)。 Mono.Security.dll和Npgsql.dll包含在我的項目引用中,它們存在於我的bin目錄中。當代碼執行以下行:無法從NHibernate.Driver.NpgsqlDriver創建驅動程序

SessionFactory.OpenSession(); 

異常與消息拋出

「無法創建NHibernate.Driver.NpgsqlDriver司機。」

在網上搜索,給了我一些想法,但都沒有工作。我繼承的這段代碼是在幾個使用MS SQL Server的客戶端進行生產的。這裏是我的hibernate.cfg.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property> 
    <property name="connection.connection_string">server=localhost;Port=5432;Database=vehicletracker;User Id=postgres;Password=********;</property> 
    </session-factory> 
</hibernate-configuration> 

我沒有忘記,包括「Npgsql的使用;」,它的存在。有什麼建議麼?

問候,

回答

1

如果您使用的NuGet爲NHibernate的圖書館嘗試卸載的包並重新安裝。我確信有人知道更有效的方法來解決這類問題,但對我來說,它解決了這個問題。

+0

嗨,湯姆,謝謝你抽出時間來幫忙。我沒有使用NuGet,因爲我的IDE是Visual Studio 2008.我刪除並替換了我的nHibernate和Npgsql DLL,但仍然沒有運氣。再次,使用MS SQL Server工作正常,但試圖與Npgsql連接引發異常。 – Woolly

9

我找到了自己問題的答案。有幾個特定於我的工作環境的問題,但最終Mono.Security.dll和Npgsql.dll在我的最終輸出目錄中不可用。這兩個文件存在於我的數據訪問層(一個類庫)的bin目錄中,但不存在於我的測試項目的稱爲類庫的bin目錄中。現在一切正常。

+1

這對我也有幫助。你爲什麼不接受你的答案? – IvanP

+0

我幫助改變了複製本地的真實 –

相關問題