Que tal gente

Si de nuevo yo el dummie xD

traigo para ustedes dos consultas basicas por asi decirlo, estoy
leyendo el cookbook de nhibernate 3, hice el ejercicio y todo salio a
pedir de boca... pero extrañamente trato de hacerlo en mi ejemplo y
salen errores tras errores

El Error es el siguiente:

No se controló NHibernate.MappingException
  Message="Association references unmapped class:
SAI.NH.BL.Contabilidad"
  Source="NHibernate"
  StackTrace:
       en
NHibernate.Cfg.XmlHbmBinding.CollectionBinder.BindCollectionSecondPass(XmlNode
node, Collection model, IDictionary`2 persistentClasses, IDictionary`2
inheritedMetas)
       en
NHibernate.Cfg.XmlHbmBinding.CollectionBinder.<>c__DisplayClassd.<AddCollectionSecondPass>b__c(IDictionary`2
persistentClasses)
       en NHibernate.Cfg.Configuration.SecondPassCompile()
       en NHibernate.Cfg.Configuration.BuildSessionFactory()
       en SystemSAI.Form1..ctor() en C:\Documents and Settings
\augusto.ferriz\Mis documentos\Visual Studio 2008\Projects\SAI
\SystemSAI\Form1.cs:línea 19
       en SystemSAI.Program.Main() en C:\Documents and Settings
\augusto.ferriz\Mis documentos\Visual Studio 2008\Projects\SAI
\SystemSAI\Program.cs:línea 18
       en System.AppDomain._nExecuteAssembly(Assembly assembly,
String[] args)
       en System.AppDomain.ExecuteAssembly(String assemblyFile,
Evidence assemblySecurity, String[] args)
       en
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       en System.Threading.ThreadHelper.ThreadStart_Context(Object
state)
       en System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
       en System.Threading.ThreadHelper.ThreadStart()
  InnerException:


Para esto primero tengo una Clase Entidad, que maneja un ID tipo
guid.comb

public abstract class Entidad
    {
       public virtual Guid Id { get; protected set; }
    }

y luego tengo 2 clases Alumno y Contabilidad que heredan el ID de
entidad:

public class Alumno : Entidad
    {
        public virtual string Matricula {get; set; }
        public virtual string Paterno {get; set; }
        public virtual string Materno {get; set; }
        public virtual string Nombre {get; set; }
        public virtual IList<Contabilidad> Cuenta  {get; set; }
    }

Este es su mapeo:

<class name="Alumno">
    <id name="Id">
      <generator class="guid.comb" />
    </id>
    <natural-id mutable="true">
      <property name="Matricula" not-null="true" />
    </natural-id>
    <property name="Paterno" />
    <property name="Materno" />
    <property name="Nombre" />
    <bag name="Cuenta" cascade="all-delete-orphan"> <--- segun el
libro esto es lo unico que necesito hacer para que se haga
      <key column="CuentaId" />
la relacion entre las 2 clases... recuerden estoy usando NH3
      <one-to-many class="Contabilidad"/>
    </bag>
  </class>

public class Contabilidad : Entidad
    {
        public int NoCuenta {get; set; }
        public int JDE {get; set; }
        public int Hora {get; set; }
        public int Importe {get; set; }
    }

Este es su mapeo:

<class name="Contabilidad">
    <id name="Id">
      <generator class="guid.comb" />
    </id>
    <natural-id mutable="true">
      <property name="NoCuenta" not-null="true" />
    </natural-id>
    <property name="JDE" />
    <property name="Hora" />
    <property name="Importe" />
  </class>


La segunda duda que tengo es que no quiero que mi archivo sea un
cochinero de archivos clases y xml, trate de ponerlos en carpetas,
pero por alguna extraña razon me dice que no puede cargar un objeto
prque no cuenta con persistencia, curioso porque si los pongo todos
juntos si funciona...

Saludos

P.D. Ya tome cafe y revise el notepad xD

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a