无法从NHibernate.Driver.NpgsqlDriver创建驱动程序

Woo*_*lly 6 postgresql nhibernate npgsql

我继承了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目录中.当代码执行以下行时:

SessionFactory.OpenSession();
Run Code Online (Sandbox Code Playgroud)

消息抛出异常

"无法从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>
Run Code Online (Sandbox Code Playgroud)

我没有忘记包含"使用Npgsql;",它就在那里.有什么建议?

问候,

Woo*_*lly 9

我找到了自己问题的答案.有几个特定于我的工作环境的问题但最终Mono.Security.dll和Npgsql.dll在我的最终输出目录中不可用.这两个文件存在于我的数据访问层(类库)的bin目录中,但不存在于我的Test Project的bin目录中,该目录调用了类库.现在一切都很好.


小智 1

如果您使用 NuGet 作为 nhibernate 库,请尝试卸载软件包并重新安装它们。我确信有人知道有一种更有效的方法来解决此类问题,但对我来说它解决了这个确切的问题。