2010-01-06 12 views
8

He estado luchando con este problema NHibernate durante horas. Investigué extensamente en la web, así como en la documentación de NHibernate, y no puedo entender este tema. Soy relativamente nuevo en NHibernate, y me encanta. En ese caso, sin embargo, me está volviendo loco.C#/NHibernate: Asociación hace referencia a la clase no asignada

Estoy escribiendo un pequeño módulo "Encuesta" para un sitio web. Tengo varias clases (Poll, PollVote y PollAnswer). El principal, Poll, es el que está causando el problema. Esto esto lo que se ve la clase como:

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

Y esto es lo que ve el mapeo como:

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

Esto me devuelve un error:

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

Realmente quiero entender esto , y comprender mejor el funcionamiento interno de NHibernate. No entiendo cómo no puede "ver" la clase PollAnswer "

Respuesta

8

Está definiendo una relación de uno a muchos entre Poll y PollAnswer. Por lo tanto, necesitará una sección para PollAnswer en su archivo hbm.xml . tendrá una para PollVote también.

+13

Además de las propiedades del archivo hbm.xml, asegurar la Acción de generación está configurado como Recurso incrustado – bitsprint

12

Tienes que ir al archivo .hbm.xml> propiedades> Construir Acción establecido en Recurso incrustado

Cuestiones relacionadas