C#/ NHibernate:关联引用未映射的类

时间:2010-01-06 20:25:15

标签: c# nhibernate

我一直在努力解决这个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“课程。

2 个答案:

答案 0 :(得分:13)

您需要转到.hbm.xml文件&gt;属性&gt;构建操作设置为嵌入式资源

答案 1 :(得分:10)

您正在定义Poll和PollAnswer之间的一对多关系。因此,您需要在hbm.xml文件中有一个PollAnswer部分。你也需要一个PollVote。