Skip to content

Commit 31a5f2f

Browse files
committed
Create LeftJoinEx extension to not conflict with .NET10 LeftJoin
1 parent 182622b commit 31a5f2f

13 files changed

Lines changed: 79 additions & 42 deletions

ChangeLog/7.2.1-dev.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[main] LeftJoin extension marked as Obsolete to prepare movement to .NET 10, LeftJoinEx provided as substitution
2+
[main] IPriorityQueue interface became Obsolete

Orm/Xtensive.Orm.Tests/Issues/IssueGithub0114_QueryRootReuseCauseNoRefJoin.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2389,7 +2389,7 @@ public void LeftJoinQueryReuse()
23892389
.Select(promo => new {
23902390
promo,
23912391
notifications = session.Query.All<Notification>()
2392-
.LeftJoin(session.Query.All<User>(), n => n.TriggeredBy.Id, u => u.Id, (n, u) => new { n, u })
2392+
.LeftJoinEx(session.Query.All<User>(), n => n.TriggeredBy.Id, u => u.Id, (n, u) => new { n, u })
23932393
})
23942394
.Select(anon => new {
23952395
contacted = anon.notifications.Select(c => c.n.Recipient.User.Id)
@@ -2401,9 +2401,9 @@ public void LeftJoinQueryReuse()
24012401
.Select(promo => new { promo })
24022402
.Select(anon => new {
24032403
contacted = session.Query.All<Notification>()
2404-
.LeftJoin(session.Query.All<User>(), n => n.TriggeredBy.Id, u => u.Id, (n, u) => new { n, u }).Select(c => c.n.Recipient.User.Id)
2404+
.LeftJoinEx(session.Query.All<User>(), n => n.TriggeredBy.Id, u => u.Id, (n, u) => new { n, u }).Select(c => c.n.Recipient.User.Id)
24052405
.Concat(session.Query.All<Notification>()
2406-
.LeftJoin(session.Query.All<User>(), n => n.TriggeredBy.Id, u => u.Id, (n, u) => new { n, u }).Select(c => c.n.Recipient.User.Id)),
2406+
.LeftJoinEx(session.Query.All<User>(), n => n.TriggeredBy.Id, u => u.Id, (n, u) => new { n, u }).Select(c => c.n.Recipient.User.Id)),
24072407
promo = anon.promo
24082408
}).ToArray();
24092409

Orm/Xtensive.Orm.Tests/Issues/IssueGithub0171_ReadDateTimeOffsetFromPackedTuple.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public void DateTimeOffsetCase()
7878
var loadWithCargo = new CargoLoad(session, cargo);
7979

8080
var query = session.Query.All<CargoLoad>()
81-
.LeftJoin(session.Query.All<Cargo>(),
81+
.LeftJoinEx(session.Query.All<Cargo>(),
8282
cl => cl.Cargo,
8383
c => c,
8484
(cl, c) => new { CargoLoad = cl, Cargo = c })
@@ -102,7 +102,7 @@ public void DateTimeCase()
102102
var loadWithCargo = new CargoLoad(session, cargo);
103103

104104
var query = session.Query.All<CargoLoad>()
105-
.LeftJoin(session.Query.All<Cargo>(),
105+
.LeftJoinEx(session.Query.All<Cargo>(),
106106
cl => cl.Cargo,
107107
c => c,
108108
(cl, c) => new { CargoLoad = cl, Cargo = c })

Orm/Xtensive.Orm.Tests/Issues/IssueJira0553_IncorrectLeftJoinOnNotNullEntityField.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public void BadWorkTest()
136136
using (var session = Domain.OpenSession())
137137
using (var t = session.OpenTransaction()) {
138138
var badResult = session.Query.All<Employee>()
139-
.LeftJoin(
139+
.LeftJoinEx(
140140
session.Query.All<EmployeeWithCar>(),
141141
e => e.Id,
142142
ewc => ewc.Id,
@@ -155,7 +155,7 @@ public void GoodWorkTest()
155155
using (var session = Domain.OpenSession())
156156
using (var transaction = session.OpenTransaction()) {
157157
var goodResult = session.Query.All<Employee>()
158-
.LeftJoin(
158+
.LeftJoinEx(
159159
session.Query.All<EmployeeWithCar>(),
160160
e => e.Id,
161161
ewc => ewc.Id,
@@ -173,15 +173,15 @@ public void WorkaroundTest()
173173
using (var session = Domain.OpenSession())
174174
using (var transaction = session.OpenTransaction()) {
175175
var wordaround = session.Query.All<Employee>()
176-
.LeftJoin(
176+
.LeftJoinEx(
177177
session.Query.All<EmployeeWithCar>(),
178178
e => e.Id,
179179
ewc => ewc.Id,
180180
(e, ewc) => new {
181181
e.Id,
182182
CarId = ewc.Car.Id
183183
})
184-
.LeftJoin(
184+
.LeftJoinEx(
185185
session.Query.All<Car>(),
186186
e => e.CarId,
187187
c => c.Id,

Orm/Xtensive.Orm.Tests/Issues/IssueJira0584_IncorrectMappingOfColumnInQuery.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -526,8 +526,8 @@ public void IncludeProviderOptimizationTest01()
526526

527527
var usefulColumns = masterCredit.Union(masterDebit);
528528
var readyForFilterQuery = from joinResult in usefulColumns
529-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
530-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
529+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
530+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
531531
let item = joinResult.pp
532532
select new CustomPosting() {
533533
Id = item.Id,
@@ -609,8 +609,8 @@ public void IncludeProviderOptimizationTest02()
609609

610610
var usefulColumns = masterCredit.Union(masterDebit);
611611
var readyForFilterQuery = from joinResult in usefulColumns
612-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
613-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
612+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
613+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
614614
let item = joinResult.pp
615615
select new CustomPosting {
616616
Id = item.Id,
@@ -692,8 +692,8 @@ public void IncludeProviderOptimizationTest03()
692692

693693
var usefulColumns = masterCredit.Union(masterDebit);
694694
var readyForFilterQuery = from joinResult in usefulColumns
695-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
696-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
695+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
696+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
697697
let item = joinResult.pp
698698
select new CustomPosting {
699699
Id = item.Id,
@@ -776,8 +776,8 @@ public void IncludeProviderOptimizationTest04()
776776

777777
var usefulColumns = masterCredit.Union(masterDebit);
778778
var readyForFilterQuery = from joinResult in usefulColumns
779-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
780-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
779+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
780+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
781781
let item = joinResult.pp
782782
select new CustomPosting {
783783
Id = item.Id,
@@ -859,8 +859,8 @@ public void IncludeProviderOptimizationTest05()
859859

860860
var usefulColumns = masterCredit.Union(masterDebit);
861861
var readyForFilterQuery = from joinResult in usefulColumns
862-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
863-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
862+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
863+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
864864
let item = joinResult.pp
865865
select new CustomPosting {
866866
Id = item.Id,
@@ -1029,7 +1029,7 @@ public void JoinAsSourceOfSetOperation()
10291029
var result =
10301030
from r in
10311031
preResult.Join(tp.Distinct(), a => a.MasterAccount, a => a.Account, (a, pm) => new {pp = a, pm})
1032-
.LeftJoin(Query.All<TablePartBase.FinToolKind>(), a => a.pm.FinToolKind, a => a.Id, (a, b) => new {pp = a.pp, pm = a.pm, fk = b})
1032+
.LeftJoinEx(Query.All<TablePartBase.FinToolKind>(), a => a.pm.FinToolKind, a => a.Id, (a, b) => new {pp = a.pp, pm = a.pm, fk = b})
10331033
let q = r.pp
10341034
select
10351035
new {

Orm/Xtensive.Orm.Tests/Issues/IssueJira0586_AnonymousTypeComparisonBug.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public void MainTest()
108108

109109
var masterCredit = Query.All<PacioliPosting>();
110110

111-
var join = from r in masterCredit.LeftJoin(
111+
var join = from r in masterCredit.LeftJoinEx(
112112
tableParts,
113113
a => a.CreditAccount.Id,
114114
a => a.Account.Id,

Orm/Xtensive.Orm.Tests/Issues/IssueJira0617_IncorrectRemoveOfRedundantColumns.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ public void Test01()
6868

6969
var usefulColumns = masterCredit.Union(masterDebit);
7070
var readyForFilterQuery = from joinResult in usefulColumns
71-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
72-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
71+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
72+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
7373
let item = joinResult.pp
7474
select new CustomPosting() {
7575
Id = item.Id,
@@ -149,8 +149,8 @@ public void Test02()
149149

150150
var usefulColumns = masterCredit.Union(masterDebit);
151151
var readyForFilterQuery = from joinResult in usefulColumns
152-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
153-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
152+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
153+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
154154
let item = joinResult.pp
155155
select new CustomPosting {
156156
Id = item.Id,
@@ -230,8 +230,8 @@ public void Test03()
230230

231231
var usefulColumns = masterCredit.Union(masterDebit);
232232
var readyForFilterQuery = from joinResult in usefulColumns
233-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
234-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
233+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
234+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
235235
let item = joinResult.pp
236236
select new CustomPosting {
237237
Id = item.Id,
@@ -312,8 +312,8 @@ public void Test04()
312312

313313
var usefulColumns = masterCredit.Union(masterDebit);
314314
var readyForFilterQuery = from joinResult in usefulColumns
315-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
316-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
315+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
316+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
317317
let item = joinResult.pp
318318
select new CustomPosting {
319319
Id = item.Id,
@@ -393,8 +393,8 @@ public void Test05()
393393

394394
var usefulColumns = masterCredit.Union(masterDebit);
395395
var readyForFilterQuery = from joinResult in usefulColumns
396-
.LeftJoin(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
397-
.LeftJoin(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
396+
.LeftJoinEx(priceCalculation, a => a.SlaveAccount, a => a.Account, (pp, ps) => new {pp, ps})
397+
.LeftJoinEx(priceCalculation, a => a.pp.MasterAccount, a => a.Account, (a, pm) => new {a.pp, a.ps, pm})
398398
let item = joinResult.pp
399399
select new CustomPosting {
400400
Id = item.Id,
@@ -562,7 +562,7 @@ public void Test08()
562562
var result =
563563
from r in
564564
preResult.Join(tp.Distinct(), a => a.MasterAccount, a => a.Account, (a, pm) => new {pp = a, pm})
565-
.LeftJoin(Query.All<TablePartBase.FinToolKind>(), a => a.pm.FinToolKind, a => a.Id, (a, b) => new {pp = a.pp, pm = a.pm, fk = b})
565+
.LeftJoinEx(Query.All<TablePartBase.FinToolKind>(), a => a.pm.FinToolKind, a => a.Id, (a, b) => new {pp = a.pp, pm = a.pm, fk = b})
566566
let q = r.pp
567567
select
568568
new {

Orm/Xtensive.Orm.Tests/Issues/IssueJira0803_ReuseOfJoiningExpressionCausesWrongTranslation.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public void LeftJoinOneVariableUsage()
6666
using (var tx = session.OpenTransaction()) {
6767

6868
var leftJoinWithExpression = session.Query.All<TestEntity>()
69-
.LeftJoin(session.Query.All<TestEntity>().Where(it => it.Description == null),
69+
.LeftJoinEx(session.Query.All<TestEntity>().Where(it => it.Description == null),
7070
o => o.Id,
7171
key,
7272
(o, i) => o)
@@ -78,7 +78,7 @@ public void LeftJoinOneVariableUsage()
7878
Assert.AreEqual(3, leftJoinWithExpression.Count);
7979

8080
leftJoinWithExpression = session.Query.All<TestEntity>()
81-
.LeftJoin(session.Query.All<TestEntity>().Where(it => it.Description == null),
81+
.LeftJoinEx(session.Query.All<TestEntity>().Where(it => it.Description == null),
8282
key,
8383
i => i.Id,
8484
(o, i) => o)
@@ -101,7 +101,7 @@ public void LeftJoinTwoVariableUsage()
101101

102102
var ex = Assert.Throws<QueryTranslationException>(() =>
103103
_ = session.Query.All<TestEntity>()
104-
.LeftJoin(session.Query.All<TestEntity>().Where(it => it.Description == null),
104+
.LeftJoinEx(session.Query.All<TestEntity>().Where(it => it.Description == null),
105105
key,
106106
key,
107107
(o, i) => o)

Orm/Xtensive.Orm.Tests/Linq/DynamicallyDefinedFields.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1265,7 +1265,7 @@ public void LeftJoinTest()
12651265
using (session.Activate())
12661266
using (var transction = session.OpenTransaction()) {
12671267
Assert.DoesNotThrow(() => {
1268-
session.Query.All<Area>().LeftJoin(session.Query.All<Group>(), area => (Group)area[testData.GroupFieldName],
1268+
session.Query.All<Area>().LeftJoinEx(session.Query.All<Group>(), area => (Group)area[testData.GroupFieldName],
12691269
group => group, (area, @group) => new { Area = area, Group = group });
12701270
});
12711271
}

Orm/Xtensive.Orm.Tests/Linq/InTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public async Task StringContainsAsyncTest()
7676
public void MartinTest()
7777
{
7878
_ = Session.Query.All<Customer>()
79-
.LeftJoin(Session.Query.All<Invoice>(), c => c, i => i.Customer, (c, i) => new { Customer = c, Invoice = i })
79+
.LeftJoinEx(Session.Query.All<Invoice>(), c => c, i => i.Customer, (c, i) => new { Customer = c, Invoice = i })
8080
.GroupBy(i => new { i.Customer.FirstName, i.Customer.LastName })
8181
.Select(g => new { Key = g.Key, Count = g.Count(j => j.Invoice != null) })
8282
.ToList();

0 commit comments

Comments
 (0)