Tengo una base de datos heredada que estoy mapeando utilizando NHibernate. Los objetos de interés son una cuenta y una lista de objetos de notificación. Los objetos se ven como:La carga diferida no funciona para la relación muchos a uno cuando se asigna a un campo que no es clave mediante la propiedad-ref
public class Notification
{
public virtual int Id { get; set; }
public virtual DateTime BatchDate { get; set; }
/* other properties */
public virtual Account Account { get; set; }
}
public class Account
{
public virtual int Id { get; set; }
public virtual string AccountNumber { get; set; }
/* other properties */
}
archivos El mapeo aspecto:
<class name="Account" table="Account" dynamic-update="true">
<id name="Id" column="AccountID">
<generator class="native" />
</id>
<property name="AccountNumber" length="15" not-null="true" />
<!-- other properties -->
</class>
<class name="Notification" table="Notification">
<id name="Id" column="Id">
<generator class="native" />
</id>
<!-- other properties -->
<many-to-one name="Account" class="Account" property-ref="AccountNumber" lazy="proxy">
<column name="AcctNum" />
</many-to-one>
Sin embargo, cuando se crea un criterio como
return session.CreateCriteria(typeof(Notification)).List<Notification>();
que estoy recibiendo un caso Seleccione N + 1 donde cada cuenta se carga aunque la Cuenta nunca se haga referencia. ¿Por qué se cargan todas las cuentas cuando el mapeo múltiple se mapea como un proxy flojo?
me sale el mismo problema, yo no recuerdo haber visto un post somehwere diciendo muchos-a-uno propiedad ref de que no puede ser cargado ligeramente , Simplemente no puedo encontrar la fuente. Esto fue con NH 1.2 – Jafin