domingo, 9 de noviembre de 2008

Could not find a getter for property

Estube con este error n días hasta que descubrí cual era la razón. ¿De que estamos hablando? Del proyecto CRMOS con NHibernate. Tengo una clase que es Contacto:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="crmos.Bo.Contacto, crmos.Bo" table="Contacto">
<id name="Id" type="Int32" unsaved-value="null">
<column name="Id_Con" length="4" sql-type="int" not-null="true" unique="true" index="PK_Contacto"/>
<generator class="native" />
</id>
<property name="Id_Cti" type="Int32">
<column name="Id_Cti" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Fecha_Con" type="DateTime" access="field" >
<column name="Fecha_Con" length="8" sql-type="datetime" not-null="false"/>
</property>
<property name="Observacion_Con" type="String" access="field">
<column name="Observacion_Con" length="16" sql-type="text" not-null="false"/>
</property>
<property name="Estado_Est" type="Int32" access="field">
<column name="Estado_Est" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Ven" type="Int32" access="field">
<column name="Id_Ven" length="4" sql-type="int" not-null="false"/>
</property>
    
</class>
</hibernate-mapping>

y la clase que estaba implementando tenia campos como:
xId_Con, xId_Cti, etc. Ejemplo:

public virtual int xId_Con{ 
 get {return Id_Con;} set {Id_Con=value;}}

 public virtual int xId_Per{ 
 get {return xId_Per;} set {xId_Per=value;}}
 public virtual int Id_Cti{ 
 get {return Id_Cti;} set {Id_Cti=value;}}
 public virtual DateTime xFecha_Con{ 
 get {return Fecha_Con;} set {Fecha_Con=value;}}
 public virtual string xObservacion_Con{ 
 get {return Observacion_Con;} set {Observacion_Con=value;}}
 public virtual int xEstado_Est{ 
 get {return Estado_Est;} set {Estado_Est=value;}}
 public virtual int xId_Ven{ 
 get {return Id_Ven;} set {Id_Ven=value;}} 


La solución es que si tengo mapeada una propieda Id_Con, Id_Per, etc. Esos es lo que tiene que estar en la clase. Ejemplo (el siguiente código es correcto)

public virtual int Id_Con{ 
 get {return xId_Con;} set {xId_Con=value;}}

 public virtual int Id_Per{ 
 get {return xId_Per;} set {xId_Per=value;}}
 public virtual int Id_Cti{ 
 get {return xId_Cti;} set {xId_Cti=value;}}
 public virtual DateTime Fecha_Con{ 
 get {return xFecha_Con;} set {xFecha_Con=value;}}
 public virtual string Observacion_Con{ 
 get {return xObservacion_Con;} set {xObservacion_Con=value;}}
 public virtual int Estado_Est{ 
 get {return xEstado_Est;} set {xEstado_Est=value;}}
 public virtual int Id_Ven{ 
 get {return xId_Ven;} set {xId_Ven=value;}}

No hay comentarios: