Когда у меня есть ссылка на ту же таблицу в моём select, что и в предложении where, linq to Nhibernate генерирует два соединения, одно для select и одно для where. т.е.
from child in Session.Query<Child>()
where child.Parent.Name == "Bob"
select new Info
{
ParentAge = child.Parent.Age,
ChildName = child.Name
};
Генерирует SQL как:
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'
Я бы подумал, что должен получить SQL больше как:
Select this_.Name,
parent1.Age
From Child this_
inner join Parent parent1 on child.ParentId = parent1.Id
Where parent1.Name = 'Bob'
Есть ли способ структурировать запрос, чтобы получить это?
Имеет ли это значение?