sábado, 29 de noviembre de 2008

GridView no carga los datos desde un IList

 
Posted by Picasa


Estoy trantando de mostrar un resultado en un GridView obtenidos con Nhibernate desde una Base SQL 2005 Express y solo me aparecen las columnas como: Lenght, LongLength, Rank, IsReadOnly, IsFixedSize, IsSynchronized. Cuando hago la consulta a una sola tabla me funciona pero cuando trato de hacer un Inner Join o consultar las dos tablas me muestra las columnas antes mencionadas.

La consulta que hago es la siguiente:

public IList getContactos()
{
ISession session =
NHibernateSessionFactory.GetCurrentSession();

IQuery query = session.CreateQuery("from Contacto as c , Persona as p where c.Id_Per=p.Id_Per");
return query.List();

}

Para luego mostrar los datos en el GridView de la siguiente manera:

private void setContactos() {
Contacto cCon = new Contacto();

gdvContactos.DataSource=cCon.getContactos();
gdvContactos.DataBind();
}

Los mapeos son:

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_Con" 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_Per" type="Int32">
<column name="Id_Per" length="4" sql-type="int" not-null="false"/>
</property>
<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="property" >
<column name="Fecha_Con" sql-type="datetime" />
</property>
<property name="Observacion_Con" type="String" access="property">
<column name="Observacion_Con" length="16" sql-type="text" not-null="false"/>
</property>
<property name="Estado_Est" type="Int32" access="property">
<column name="Estado_Est" length="4" sql-type="int" not-null="false"/>
</property>
<property name="Id_Ven" type="Int32" access="property">
<column name="Id_Ven" length="4" sql-type="int" not-null="false"/>
</property>

<many-to-one name="Persona" class="crmos.Bo.Persona, crmos.Bo">
<column name="Id_Per" length="4" sql-type="int" not-null="false"/>
</many-to-one>

<bag name="Contactos" inverse="true" lazy="true" cascade="all-delete-orphan">
<key column="Id_Per"/>
<one-to-many class="crmos.Bo.Persona, crmos.Bo"/>
</bag>

</class>
</hibernate-mapping>

Persona

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

<class name="crmos.Bo.Persona, crmos.Bo" table="Persona">
<id name="Id_Per" type="Int32" unsaved-value="null">
<column name="Id_Per" length="4" sql-type="int" not-null="true" unique="true" index="PK_Persona"/>
<generator class="native" />
</id>
<property name="Nombres_Per" type="String">
<column name="Nombres_Per" length="50" sql-type="varchar" not-null="false"/>
</property>
<property name="ApellidoPaterno_Per" type="String">
<column name="ApellidoPaterno_Per" length="15" sql-type="varchar" not-null="false"/>
</property>
<property name="ApellidoMaterno_Per" type="String">
<column name="ApellidoMaterno_Per" length="15" sql-type="varchar" not-null="false"/>
</property>
<property name="Email_Per" type="String">
<column name="Email_Per" length="100" sql-type="varchar" not-null="false"/>
</property>


<bag name="Contactos" inverse="true" lazy="true" cascade="all-delete-orphan">
<key column="Id_Per"/>
<one-to-many class="crmos.Bo.Contacto, crmos.Bo"/>
</bag>
</class>
</hibernate-mapping>

Ya me estoy dando por vencido, asi que solicitaré ayuda en los foros de NHibernate y postearé la solución. O si alguien ya ha pasado por esta ....

El código completo del proyecto se puede descargar desde:
http://code.google.com/p/crmos/downloads/list

No hay comentarios: