2010-01-06 10 views
8

Ich habe stundenlang mit diesem NHibernate-Problem gekämpft. Ich habe sowohl im Internet als auch in der NHibernate-Dokumentation ausführlich recherchiert, und ich kann mir dieses Problem nicht vorstellen. Ich bin relativ neu in NHibernate und liebe es. Aber in diesem Fall macht es mich verrückt.C#/NHibernate: Assoziationsreferenzen nicht zugeordnete Klasse

Ich schreibe ein kleines "Umfrage" -Modul für eine Website. Ich habe mehrere Klassen (Poll, PollVote und PollAnswer). Der wichtigste, Poll, ist derjenige, der das Problem verursacht. Das es das, was die Klasse wie folgt aussieht:

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; } 
    } 

Und das ist, was die Abbildung wie folgt aussieht:

<?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> 

Das gibt mir eine Fehlermeldung:

Association references unmapped class: Folke.Code.Domain.PollAnswer Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: NHibernate.MappingException: Association references unmapped class: Folke.Code.Domain.PollAnswer

Ich möchte wirklich, dies verstehen und verstehe besser die innere Funktionsweise von NHibernate. Ich verstehe nicht, wie es die Klasse "PollAnswer" nicht "sehen" kann.

Antwort

8

Sie definieren eine Eins-zu-viele-Beziehung zwischen Poll und PollAnswer. Daher benötigen Sie einen Abschnitt für PollAnswer in Ihrer hbm.xml-Datei wie gut. Sie werden eine für PollVote benötigen.

+13

Zusätzlich in den hbm.xml Dateieigenschaften sorgen für die Build Action ist auf Eingebettete Ressource eingestellt – bitsprint

12

Sie benötigen die .hbm.xml Datei> Eigenschaften gehen> Aktion auf Eingebettete Ressource Bauen gesetzt

Verwandte Themen