我一直在努力解决这个NHibernate问题几个小时。我在网上和NHibernate文档上进行了广泛的研究,我对这个问题没有任何意义。我对NHibernate相对较新,并且喜欢它。但在那种情况下,这让我很生气。
我正在为一个网站写一个小的“民意调查”模块。我有几个班(Poll,PollVote和PollAnswer)。主要的一个,民意调查,就是造成这个问题的人。这就是这个课程的样子:
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>
这会给我一个错误:
未映射的关联引用 class:Folke.Code.Domain.PollAnswer 描述:未处理的异常 在执行期间发生 当前的网络请求。请查看 堆栈跟踪以获取更多信息 错误及其来源 代码。
异常详细信息: NHibernate.MappingException: 关联引用未映射的类: Folke.Code.Domain.PollAnswer
我真的想了解这一点,并更好地了解NHibernate的内部工作。我不明白它怎么不能“看到”PollAnswer“课程。
答案 0 :(得分:13)
您需要转到.hbm.xml文件&gt;属性&gt;构建操作设置为嵌入式资源
答案 1 :(得分:10)
您正在定义Poll和PollAnswer之间的一对多关系。因此,您需要在hbm.xml文件中有一个PollAnswer部分。你也需要一个PollVote。