Dando una relación de Equipo -> Atleta y preguntando a todos los atletas. ¿Qué estoy malentendiendo sobre fetch="Join"
? ¿Debería este mapeo causar que el Equipo se cargue a través de una unión? Al iterar a los atletas, todavía carga el Equipo.NHibernate Join Fetch (Tipo)
public class AthleteMap : ClassMapping<Athlete>
{
public AthleteMap()
{
ManyToOne(a => a.Team, o =>
{
o.Fetch(FetchKind.Join);
o.Lazy(LazyRelation.NoLazy);
}
);
}
}
que produce este HBM:
<class name="Athlete" table="Athletes">
<id name="Id" type="Int32" />
<property name="FirstName" />
<property name="LastName" />
<many-to-one name="Team" fetch="join" lazy="false" />
<property name="Created" />
</class>
iteración:
var session = factory.OpenSession();
foreach (var athlete in session.Query<Athlete>())
Console.WriteLine("{0} {1}", athlete.FirstName, athlete.Team.Name);
¿Se obtiene una excepción? ¿Cuales? – Gerard
Entonces, cuando repites, ¿ves las consultas obteniendo un 'Equipo' por' atleta'? Quiero decir, el mapeo es correcto, aparte de la búsqueda ansiosa. –
Sin excepción. @GertArnold sí mientras itera, consulta al equipo en cada iteración. – mxmissile