2012-11-09 15 views
5

私はC#/ NHibernate/MS SQL Serverプロジェクトを継承しており、NHibernateの新機能です。私に与えられた最初のタスクの1つは、データベースを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のを使用して、」、それはそこにあります。助言がありますか?

よろしく、

B

答えて

1

あなたはNHibernateのライブラリのためのNuGetを使用している場合、パッケージをアンインストールしようとし、それらを再インストールします。私はこの種の問題を解決するために誰かが知っているより効率的な方法があると確信していますが、私にとってはこの正確な問題を解決しました。

+0

こんにちはTom、時間をとってくれてありがとう。私のIDEはVisual Studio 2008以来、私はNuGetを使用していません。私は削除し、nHibernateとNpgsqlのDLLを交換したが、まだ運がない。再度、MS SQL Serverを使用するとうまくいくが、Npgsqlとの接続を試みると例外がスローされる。 – Woolly

9

私自身の質問に対する答えが見つかりました。私の仕事環境に固有のいくつかの問題がありましたが、最終的にMono.Security.dllとNpgsql.dllは最終出力ディレクトリで利用できませんでした。 2つのファイルは、データアクセスレイヤー(クラスライブラリ)のbinディレクトリにありましたが、クラスライブラリを呼び出したテストプロジェクトのbinディレクトリにはありませんでした。すべてがうまくいきました。

+1

これも私を助けました。なぜあなたはあなたの答えを受け入れないのですか? – IvanP

+0

私は真のコピーローカルを変更するのを手伝った –

関連する問題