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

Ast*_*aar 12 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; }
    }
Run Code Online (Sandbox Code Playgroud)

这就是映射的样子:

<?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>
Run Code Online (Sandbox Code Playgroud)

这给我一个错误:

关联引用未映射的类:Folke.Code.Domain.PollAnswer描述:在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:NHibernate.MappingException:关联引用未映射的类:Folke.Code.Domain.PollAnswer

我真的想了解这一点,并更好地理解NHibernate的内部工作.我不明白它怎么不能"看到"PollAnswer"课程.

小智 13

您需要将.hbm.xml文件> properties> Build Action设置为Embedded Resource


ant*_*ony 10

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

  • 此外,在hbm.xml文件属性中,确保将Build Action设置为Embedded Resource (14认同)