Joins should support additional restrictions (HQL-with)

Description

Following query shoul use 'AND' in ON join expression

var result =
(from o in session.Query<Order>()
from ol in o.OrderLines.Where(x => x.Name.StartsWith("Order Line 3")).DefaultIfEmpty()
select new {OrderId = o.Id, OrderLineId = (Guid?) ol.Id}).ToList();

Expected SQL:

select
order0_.Id as col_0_0_,
orderlines1_.Id as col_1_0_
from
Orders order0_
left outer join
OrderLines orderlines1_
on order0_.Id=orderlines1_.OrderId
and orderlines1_.Name like ('Order Line 3')

And with IEnumerable projection:

var orders = db.Orders
.Select(o => new
{
o.OrderId,
OrderLinesIds = o.OrderLines
.Where(ol => ol.Discount > 1)
.Select(ol => ol.Id)
.ToArray()
})
.ToList();

Environment

None

Activity

Alex Zaytsev 
June 5, 2012 at 11:22 AM

Commited to master 85fbbb046fc6bc25406ff3dac4a74c372d1f6e5f

Fixed

Details

Assignee

Reporter

Labels

Components

Fix versions

Affects versions

Priority

Who's Looking?

Open Who's Looking?
Created June 5, 2012 at 8:20 AM
Updated September 21, 2014 at 12:42 PM
Resolved June 5, 2012 at 11:22 AM
Who's Looking?