nhibernate运行时出现Could not compile the mapping document...错误

Tags: nhibernate

我在初次布置nhibernate时出现如下错误:

“NHibernate.MappingException”类型的异常在 NHibernate.dll 中发生,但未在用户代码中进行处理

其他信息: Could not compile the mapping document: FirstSolution.Mappings.Product.hbm.xml


一般是数据库映射类表与对应的hbm.xml文件设置的属性不一致造成的。


以下是我出现错误的文件内容:

    public class Product //数据库映射类表

    {

        public string Name { get; set; }

        public string Category { get; set; }

        public bool Discontinued { get; set; }

    }



Product.hbm.xml文件内容:

<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"

                   assembly="FirstSolution"

                   namespace="FirstSolution.Domain">

  <!-- more mapping info here -->

  <class name="Product">

    <id name="Id">

      <generator class="guid" />

    </id>

    <property name="Name" />

    <property name="Category" />

    <property name="Discontinued" />

  </class>

</hibernate-mapping>


比较这两个文件可以发现在product类里面没有声明Id这个属性,所以才报这个错的。把product类改为如下错误就解决了。

    public class Product

    {

        public  Guid Id { get; set; }

        public string Name { get; set; }

        public string Category { get; set; }

        public bool Discontinued { get; set; }

    }