Skip to content

Commit 2a33477

Browse files
committed
Use inner joins for inner key associations
1 parent f44223e commit 2a33477

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

src/NHibernate.Test/Async/Linq/LinqQuerySamples.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,9 @@ join o in db.Orders on
10261026

10271027
var sql = sqlSpy.GetWholeLog();
10281028
Assert.That(sql, Does.Contain(useCrossJoin ? "cross join" : "inner join"));
1029-
Assert.That(GetTotalOccurrences(sql, "left outer join"), Is.EqualTo(1));
1029+
Assert.That(GetTotalOccurrences(sql, "left outer join"), Is.EqualTo(0));
1030+
Assert.That(GetTotalOccurrences(sql, "inner join"), Is.EqualTo(useCrossJoin ? 1 : 2));
1031+
Assert.That(GetTotalOccurrences(sql, "cross join"), Is.EqualTo(useCrossJoin ? 1 : 0));
10301032
}
10311033
}
10321034

src/NHibernate.Test/Linq/LinqQuerySamples.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1570,7 +1570,9 @@ join o in db.Orders on
15701570

15711571
var sql = sqlSpy.GetWholeLog();
15721572
Assert.That(sql, Does.Contain(useCrossJoin ? "cross join" : "inner join"));
1573-
Assert.That(GetTotalOccurrences(sql, "left outer join"), Is.EqualTo(1));
1573+
Assert.That(GetTotalOccurrences(sql, "left outer join"), Is.EqualTo(0));
1574+
Assert.That(GetTotalOccurrences(sql, "inner join"), Is.EqualTo(useCrossJoin ? 1 : 2));
1575+
Assert.That(GetTotalOccurrences(sql, "cross join"), Is.EqualTo(useCrossJoin ? 1 : 0));
15741576
}
15751577
}
15761578

src/NHibernate/Linq/ReWriters/AddJoinsReWriter.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ public bool IsIdentifier(System.Type type, string propertyName)
9696
private void AddJoin(QueryModel queryModel, NhJoinClause joinClause)
9797
{
9898
joinClause.ParentJoinClause = _currentJoin;
99+
if (_currentJoin != null)
100+
{
101+
// Match the parent join type
102+
joinClause.MakeInner();
103+
}
104+
99105
queryModel.BodyClauses.Add(joinClause);
100106
}
101107
}

0 commit comments

Comments
 (0)