我有两个班级:
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总是很难吗?也许我需要一个不同的框架。
答案 0 :(得分:0)
我真的认为映射很好,这让我相信配置设置不太正确。
请注意,BuildSessionFactory
仅在应用程序启动时调用一次。
另外请检查您是否未包括两次映射文件,因为这也会引发此类错误。
请发布您的配置代码。
你认为NHibernate对于新来者很难掌握会话管理和映射是正确的。一旦你掌握了这一点,事情变得更容易,非常值得努力。