Nhibernate 2.0.1含单体

Nhibernate 2.0.1含单体,nhibernate,mono,Nhibernate,Mono,我已经在windows机器上构建了WinForm应用程序,该应用程序正在运行 好啊当我使用NHibernate1.2.1时,这个应用程序也可以在linux机器上运行 使用mono,但现在当我将应用升级到nhibernate 2.0.1时,它就可以工作了 只在窗户里。 我得到一个错误: NHibernate.InvalidProxyTypeException:以下类型可能不可用 用作代理: xxxx.Data.Dao.Credit:方法obj_地址应该是虚拟的 ...... 有人能帮我解决这个问题

我已经在windows机器上构建了WinForm应用程序,该应用程序正在运行 好啊当我使用NHibernate1.2.1时,这个应用程序也可以在linux机器上运行 使用mono,但现在当我将应用升级到nhibernate 2.0.1时,它就可以工作了 只在窗户里。 我得到一个错误: NHibernate.InvalidProxyTypeException:以下类型可能不可用 用作代理: xxxx.Data.Dao.Credit:方法obj_地址应该是虚拟的 ......
有人能帮我解决这个问题吗

这可能很有趣:


我也在单声道上尝试使用NHibernate。大多数论坛似乎都说将字符串设置为virtual可以解决问题,但这对我来说并不奏效。奇怪的是我的错误几乎是一样的-

“”方法对象地址应该是虚拟的


这让我觉得代理“地址”是为其他东西保留的。尝试更改此列的名称?

您可以尝试禁用NHibernate配置代理验证程序。它似乎不适用于单声道

您可以通过添加以下内容来完成此操作:
false
在应用程序/web.config nhibernate部分中

有关此属性集的配置示例,请参见此处:

或修改此项:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="hibernate-configuration"
             type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
  </configSections>

  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <!--
      <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
      <property name="connection.connection_string">Data Source=YOUR_DB_SERVER;Database=Northwind;User ID=YOUR_USERNAME;Password=YOUR_PASSWORD;</property>
      <property name="connection.isolation">ReadCommitted</property>
      <property name="default_schema">Northwind.dbo</property>
          -->
        <!--
      <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="connection.driver_class">NHibernate.Driver.SQLiteDriver</property>
      <property name="connection.connection_string">Data Source=nhibernate.db;Version=3</property>
      <property name="query.substitutions">true=1;false=0</property>
          -->
          <!-- mysql
      <property name="dialect">NHibernate.Dialect.MySQLDialect</property>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
      <property name="connection.connection_string">Database=test</property>
          -->
          <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
          <property name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
          <property name="connection.connection_string">Server=localhost;database=test;User id=jrwren;password=yourpasswordhere.</property>
          <property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
          <property name="use_proxy_validator">false</property>
      <!-- HBM Mapping Files -->
      <mapping assembly="Test.exe" />
    </session-factory>
  </hibernate-configuration>

</configuration>

NHibernate.Connection.DriverConnectionProvider
NHibernate.Driver.NpgsqlDriver
服务器=本地主机;数据库=测试;用户id=jrwren;password=yourspasswordhere。
NHibernate.dialogue.Postgresqldialogue
假的