NHibernate-can';编译映射文件

NHibernate-can';编译映射文件,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,这是我的域类: public class User { public Guid id { get; set; } public string firstName { get; set; } public string lastName { get; set; } public string mailAddress { get; set; } } 这是我的映射文件: <?xml version="1.0" encoding="utf-8" ?>

这是我的域类:

public class User
{
    public Guid id { get; set; }

    public string firstName { get; set; }

    public string lastName { get; set; }

    public string mailAddress { get; set; }
}
这是我的映射文件:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Test" namespace="Test.model">

  <class name="User" >
    <id name="id">
      <generator class="guid"/>
    </id>
    <property name="firstName"  />
    <property name="lastName" />
    <property name="mailAddress" />
  </class>

</hibernate-mapping>
我得到以下例外情况: 无法编译映射文档:data/mapping/User.hbm.xml

我不明白为什么

请提供帮助。

您实体的任何C#财产必须声明为虚拟。以这种方式更改您的类:

public class User
{
    public virtual Guid id { get; set; }
    public virtual string firstName { get; set; }
    public virtual string lastName { get; set; }
    public virtual string mailAddress { get; set; }
}

给出堆栈跟踪,以便查看嵌套异常,很容易检测出确切的原因。
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MySQLDialect</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">Server=localhost;Database=vbook;User ID=root;Password=ziben</property>
<!--<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>-->

<property name="hbm2ddl.auto">update</property>
<property name="generate_statistics">true</property>
<property name="show_sql">true</property>


<mapping file="data/mapping/User.hbm.xml" />
 var configuration = new Configuration();
 configuration.Configure();

 _sessionFactory = configuration.BuildSessionFactory();
public class User
{
    public virtual Guid id { get; set; }
    public virtual string firstName { get; set; }
    public virtual string lastName { get; set; }
    public virtual string mailAddress { get; set; }
}