nhibernate怪异的DuplicateMappingException

时间:2011-03-30 21:48:19

标签: nhibernate

我有两个班级:

namespace fm.web
{
  public class User
  {
    public static string default_username = "guest";
    public static string default_password = "guest";

    private UserType usertype;

    public virtual int? Id { get; set; }
    public virtual string Username { get; set; }
    public virtual string Password { get; set; }
    public virtual DateTime Datecreated { get; set; }
    public virtual string Firstname { get; set; }
    public virtual string Lastname { get; set; }
    public virtual string Email { get; set; }
    public virtual UserType Usertype
    {
      get { return usertype; }
      set { usertype = value; }
    }    
  }
}

namespace fm.web
{
    public class UserType
    {
        public virtual int? Id { get; set; }
        public virtual string Title { get; set; }
    }
}

以下是映射文件

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="fm.web"
                   assembly="fm.web">
  <class name="User" table="[user]">
    <id name="Id">
      <column name="id" />
      <generator class="native" />
    </id>
    <property name="Username" />
    <property name="Password" />
    <property name="Datecreated" />
    <many-to-one name="Usertype"
                 class="UserType"
                 column="[type]"
                 cascade="all"
                 lazy="false"
                 />
    <property name="Firstname" />
    <property name="Lastname" />
    <property name="Email" />
  </class>
</hibernate-mapping>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="fm.web"
                   assembly="fm.web">
  <class name="UserType" table="[user_type]">
    <id name="Id">
      <column name="id" />
      <generator class="native" />
    </id>
    <property name="Title" />
  </class>

</hibernate-mapping>

我收到异常:DuplicateMappingException

无法编译映射文档:fm.web.data.User.hbm.xml

重复的类/实体映射用户

nhibernate总是很难吗?也许我需要一个不同的框架。

1 个答案:

答案 0 :(得分:0)

我真的认为映射很好,这让我相信配置设置不太正确。

请注意,BuildSessionFactory仅在应用程序启动时调用一次。 另外请检查您是否未包括两次映射文件,因为这也会引发此类错误。

请发布您的配置代码。

你认为NHibernate对于新来者很难掌握会话管理和映射是正确的。一旦你掌握了这一点,事情变得更容易,非常值得努力。