Buenas, tengo algunas inconvenientes con las sesiones y el lazy load en una
aplicacion winForn en vs2012express, nHibernate 3.3 y SQLCompact Edition.
Cree 2 clases sencillas, "Categoria" y "SubCategoria", Categoria tiene una
lista de SubCategorias, cuando busco una instancia de Categoria, trae sin
problemas, pero cuando quiero acceder a la lista de SubCategorias de la
instancia me da el siguiente error: "*Información adicional:
Initializing[MiniVentasClass.Entities.Categoria#1]-failed to lazily
initialize a collection of role:
MiniVentasClass.Entities.Categoria.Subcategorias, no session or session was
closed*"
*Definición de Clases:*
public class Categoria
{
public virtual Single Id {get;set;}
public virtual string Descripcion { get; set; }
public virtual IList<SubCategoria> Subcategorias { get; set; }
}
public class SubCategoria
{
public virtual Single Id { get; set; }
public virtual Categoria Categoria { get; set; }
public virtual string Descripcion { get; set; }
}
*Así manejo la sesión:*
public class nHibernateManager
{
private static ISessionFactory _sessionFactory;
private static ISessionFactory SessionFactory
{
get
{
if(_sessionFactory == null)
{
var configuration = new Configuration();
configuration.Configure("Config.xml");
configuration.AddAssembly("MiniVentasClass");
_sessionFactory = configuration.BuildSessionFactory();
}
return _sessionFactory;
}
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
}
*El mapeo:*
*Categoria*
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MiniVentasClass"
namespace="MiniVentasClass.Entities"
default-lazy="true">
<class name="Categoria">
<id name="Id" type="int" unsaved-value="0" generator="native"/>
<property name="Descripcion" type="string" length="30"/>
<bag name="Subcategorias">
<key column="IdCategoria"/>
<one-to-many class="SubCategoria"/>
</bag>
</class>
</hibernate-mapping>
*SubCategoria*
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MiniVentasClass"
namespace="MiniVentasClass.Entities"
default-lazy="true">
<class name="SubCategoria">
<id name="Id" type="int" unsaved-value="0" generator="native"/>
<many-to-one name="Categoria" class="Categoria" column="IdCategoria"/>
<property name="Descripcion" type="string" length="30"/>
</class>
</hibernate-mapping>
Les agradecería me den una mano, hace poco empece con nHibernate y no se
como solucionarlo.
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano