Cuando tengo una referencia a la misma tabla en mi selección como en mi cláusula where, linq a Nhibernate genera dos uniones, una para la selección y otra para el lugar. es decir,Linq a NHibernate generar múltiples uniones a la misma tabla
from child in Session.Query<Child>()
where child.Parent.Name == "Bob"
select new Info
{
ParentAge = child.Parent.Age,
ChildName = child.Name
};
Genera SQL como:
Select this_.Name,
parent1.Age
From Child this_
left join Parent parent1 on child.ParentId = parent1.Id,
Parent parent2
Where child.ParentId = parent2.Id and parent2.Name = 'Bob'
yo habría pensado que debería obtener más como SQL:
Select this_.Name,
parent1.Age
From Child this_
inner join Parent parent1 on child.ParentId = parent1.Id
Where parent1.Name = 'Bob'
¿Hay una manera de estructurar la consulta para conseguir esto? ¿Importa?
¿cómo se establece su archivo de asignación? ¿Ha configurado la opción de cascada en falso? – cpoDesign