C#/NHibernate:关联引用未映射的类
我已经为这个NHibernate问题挣扎了几个小时。我在网络上以及NHibernate文档上进行了广泛的研究,我对这个问题没有任何意义。我对NHibernate比较陌生,我喜欢它。不过,那样的话,我快发疯了 我正在为一个网站写一个小的“民意测验”模块。我有几门课(Poll、PollVote和PollAnswer)。最主要的一个,民意调查,是引起这个问题的原因。这是该类的外观:C#/NHibernate:关联引用未映射的类,c#,nhibernate,C#,Nhibernate,我已经为这个NHibernate问题挣扎了几个小时。我在网络上以及NHibernate文档上进行了广泛的研究,我对这个问题没有任何意义。我对NHibernate比较陌生,我喜欢它。不过,那样的话,我快发疯了 我正在为一个网站写一个小的“民意测验”模块。我有几门课(Poll、PollVote和PollAnswer)。最主要的一个,民意调查,是引起这个问题的原因。这是该类的外观: public class Poll { public virtual int Id { get;
public class Poll
{
public virtual int Id { get; set; }
public virtual Site Site { get; set; }
public virtual string Question { get; set; }
public virtual bool Locked { get; set; }
public virtual bool Enabled { get; set; }
public virtual ICollection<PollAnswer> AnswersSet { get; set; }
public virtual ICollection<PollVote> VotesSet { get; set; }
}
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Folke"
namespace="Folke.Code.Domain">
<class name="Poll">
<id name="Id">
<generator class="native"></generator>
</id>
<property name="Site"/>
<property name="Question"/>
<property name="Locked"/>
<property name="Enabled"/>
<set name="AnswersSet" lazy="true">
<key column="PollId"/>
<one-to-many class="PollAnswer"/>
</set>
<set name="VotesSet" lazy="true">
<key column="PollId"/>
<one-to-many class="PollVote"/>
</set>
</class>
</hibernate-mapping>
公共类投票
{
公共虚拟整数Id{get;set;}
公共虚拟站点站点{get;set;}
公共虚拟字符串问题{get;set;}
公共虚拟布尔锁定{get;set;}
启用公共虚拟bool的{get;set;}
公共虚拟ICollection应答集{get;set;}
公共虚拟ICollection VotesSet{get;set;}
}
这就是映射的样子:
public class Poll
{
public virtual int Id { get; set; }
public virtual Site Site { get; set; }
public virtual string Question { get; set; }
public virtual bool Locked { get; set; }
public virtual bool Enabled { get; set; }
public virtual ICollection<PollAnswer> AnswersSet { get; set; }
public virtual ICollection<PollVote> VotesSet { get; set; }
}
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Folke"
namespace="Folke.Code.Domain">
<class name="Poll">
<id name="Id">
<generator class="native"></generator>
</id>
<property name="Site"/>
<property name="Question"/>
<property name="Locked"/>
<property name="Enabled"/>
<set name="AnswersSet" lazy="true">
<key column="PollId"/>
<one-to-many class="PollAnswer"/>
</set>
<set name="VotesSet" lazy="true">
<key column="PollId"/>
<one-to-many class="PollVote"/>
</set>
</class>
</hibernate-mapping>
这将返回一个错误:
未映射的关联引用
类别:Folke.Code.Domain.PollAnswer
描述:未处理的异常
在执行过程中发生
当前web请求。请检查
有关堆栈跟踪的详细信息,请参阅
错误及其来源
密码
例外情况详情:
NHibernate.MappingException:
关联引用未映射的类:
Folke.Code.Domain.PollAnswer
我真的很想了解这一点,更好地了解NHibernate的内部工作。我不明白为什么它不能“看到”答案“类。您正在定义Poll和PollAnswer之间的一对多关系。因此,您需要在hbm.xml文件中为PollAnswer创建一个部分。PollVote也需要一个。您需要转到.hbm.xml文件>属性>将生成操作设置为嵌入式资源此外,在hbm.xml文件属性中,确保将生成操作设置为嵌入式资源