Skip to content

Commit 7b768fd

Browse files
committed
Fix tests for Azure SQL and SQL Server 2025
1 parent f16aa57 commit 7b768fd

19 files changed

+844
-565
lines changed

test/EFCore.SqlServer.FunctionalTests/Query/AdHocJsonQuerySqlServerTestBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ INSERT INTO [Entities] ([Id], [Scenario], [OptionalReference], [RequiredReferenc
444444

445445
#region EnumLegacyValues
446446

447-
[ConditionalTheory, MemberData(nameof(IsAsyncData))]
447+
[ConditionalTheory(Skip = "#36626"), MemberData(nameof(IsAsyncData))]
448448
public virtual async Task Read_enum_property_with_legacy_values(bool async)
449449
{
450450
var contextFactory = await InitializeAsync<DbContext>(

test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsQuerySqlServer160Test.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4905,6 +4905,11 @@ protected override string StoreName
49054905
=> "ComplexNavigations160";
49064906

49074907
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
4908-
=> base.AddOptions(builder).UseSqlServer(b => b.UseCompatibilityLevel(160));
4908+
{
4909+
var options = base.AddOptions(builder);
4910+
return TestEnvironment.IsAzureSql
4911+
? options.UseAzureSql(b => b.UseCompatibilityLevel(160))
4912+
: options.UseSqlServer(b => b.UseCompatibilityLevel(160));
4913+
}
49094914
}
49104915
}

test/EFCore.SqlServer.FunctionalTests/Query/ComplexNavigationsSharedTypeQuerySqlServer160Test.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8525,6 +8525,11 @@ protected override string StoreName
85258525
=> "ComplexNavigationsOwned160";
85268526

85278527
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
8528-
=> base.AddOptions(builder).UseSqlServer(b => b.UseCompatibilityLevel(160));
8528+
{
8529+
var options = base.AddOptions(builder);
8530+
return TestEnvironment.IsAzureSql
8531+
? options.UseAzureSql(b => b.UseCompatibilityLevel(160))
8532+
: options.UseSqlServer(b => b.UseCompatibilityLevel(160));
8533+
}
85298534
}
85308535
}

test/EFCore.SqlServer.FunctionalTests/Query/JsonQueryJsonTypeSqlServerTest.cs

Lines changed: 158 additions & 250 deletions
Large diffs are not rendered by default.

test/EFCore.SqlServer.FunctionalTests/Query/NorthwindDbFunctionsQuerySqlServer160Test.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1375,6 +1375,11 @@ private void AssertSql(params string[] expected)
13751375
public class Fixture160 : NorthwindQuerySqlServerFixture<NoopModelCustomizer>
13761376
{
13771377
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
1378-
=> base.AddOptions(builder).UseSqlServer(b => b.UseCompatibilityLevel(160));
1378+
{
1379+
var options = base.AddOptions(builder);
1380+
return TestEnvironment.IsAzureSql
1381+
? options.UseAzureSql(b => b.UseCompatibilityLevel(160))
1382+
: options.UseSqlServer(b => b.UseCompatibilityLevel(160));
1383+
}
13791384
}
13801385
}

test/EFCore.SqlServer.FunctionalTests/Query/NorthwindFunctionsQuerySqlServer160Test.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,11 @@ protected override void ClearLog()
225225
public class Fixture160 : NorthwindQuerySqlServerFixture<NoopModelCustomizer>
226226
{
227227
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
228-
=> base.AddOptions(builder).UseSqlServer(b => b.UseCompatibilityLevel(160));
228+
{
229+
var options = base.AddOptions(builder);
230+
return TestEnvironment.IsAzureSql
231+
? options.UseAzureSql(b => b.UseCompatibilityLevel(160))
232+
: options.UseSqlServer(b => b.UseCompatibilityLevel(160));
233+
}
229234
}
230235
}

test/EFCore.SqlServer.FunctionalTests/Query/PrecompiledSqlPregenerationQuerySqlServerTest.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -258,10 +258,12 @@ public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder build
258258
builder = base.AddOptions(builder);
259259

260260
// TODO: Figure out if there's a nice way to continue using the retrying strategy
261-
var sqlServerOptionsBuilder = new SqlServerDbContextOptionsBuilder(builder);
262-
sqlServerOptionsBuilder
263-
.UseCompatibilityLevel(120)
264-
.ExecutionStrategy(d => new NonRetryingExecutionStrategy(d));
261+
builder = TestEnvironment.IsAzureSql
262+
? builder.UseAzureSql(b => b
263+
.UseCompatibilityLevel(120).ExecutionStrategy(d => new NonRetryingExecutionStrategy(d)))
264+
: builder.UseSqlServer(b => b
265+
.UseCompatibilityLevel(120).ExecutionStrategy(d => new NonRetryingExecutionStrategy(d)));
266+
265267
return builder;
266268
}
267269

test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQueryOldSqlServerTest.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1542,6 +1542,11 @@ protected override ITestStoreFactory TestStoreFactory
15421542

15431543
// Compatibility level 120 (SQL Server 2014) doesn't support OPENJSON
15441544
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
1545-
=> base.AddOptions(builder).UseSqlServer(o => o.UseCompatibilityLevel(120));
1545+
{
1546+
var options = base.AddOptions(builder);
1547+
return TestEnvironment.IsAzureSql
1548+
? options.UseAzureSql(b => b.UseCompatibilityLevel(120))
1549+
: options.UseSqlServer(b => b.UseCompatibilityLevel(120));
1550+
}
15461551
}
15471552
}

test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQuerySqlServer160Test.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2261,7 +2261,12 @@ protected override ITestStoreFactory TestStoreFactory
22612261
=> SqlServerTestStoreFactory.Instance;
22622262

22632263
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
2264-
=> base.AddOptions(builder).UseSqlServer(b => b.UseCompatibilityLevel(160));
2264+
{
2265+
var options = base.AddOptions(builder);
2266+
return TestEnvironment.IsAzureSql
2267+
? options.UseAzureSql(b => b.UseCompatibilityLevel(160))
2268+
: options.UseSqlServer(b => b.UseCompatibilityLevel(160));
2269+
}
22652270

22662271
protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context)
22672272
{

test/EFCore.SqlServer.FunctionalTests/Query/PrimitiveCollectionsQuerySqlServerJsonTypeTest.cs

Lines changed: 48 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public override async Task Parameter_collection_Count_with_column_predicate_with
9090
FROM [PrimitiveCollectionsEntity] AS [p]
9191
WHERE (
9292
SELECT COUNT(*)
93-
FROM (VALUES (2), (999), (1000)) AS [i]([Value])
93+
FROM (VALUES (CAST(2 AS int)), (999), (1000)) AS [i]([Value])
9494
WHERE [i].[Value] > [p].[Id]) = 2
9595
""");
9696
}
@@ -335,7 +335,9 @@ public override async Task Inline_collection_Min_with_two_values()
335335
"""
336336
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
337337
FROM [PrimitiveCollectionsEntity] AS [p]
338-
WHERE LEAST(30, [p].[Int]) = 30
338+
WHERE (
339+
SELECT MIN([v].[Value])
340+
FROM (VALUES (CAST(30 AS int)), ([p].[Int])) AS [v]([Value])) = 30
339341
""");
340342
}
341343

@@ -347,7 +349,9 @@ public override async Task Inline_collection_List_Min_with_two_values()
347349
"""
348350
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
349351
FROM [PrimitiveCollectionsEntity] AS [p]
350-
WHERE LEAST(30, [p].[Int]) = 30
352+
WHERE (
353+
SELECT MIN([v].[Value])
354+
FROM (VALUES (CAST(30 AS int)), ([p].[Int])) AS [v]([Value])) = 30
351355
""");
352356
}
353357

@@ -359,7 +363,9 @@ public override async Task Inline_collection_Max_with_two_values()
359363
"""
360364
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
361365
FROM [PrimitiveCollectionsEntity] AS [p]
362-
WHERE GREATEST(30, [p].[Int]) = 30
366+
WHERE (
367+
SELECT MAX([v].[Value])
368+
FROM (VALUES (CAST(30 AS int)), ([p].[Int])) AS [v]([Value])) = 30
363369
""");
364370
}
365371

@@ -371,7 +377,9 @@ public override async Task Inline_collection_List_Max_with_two_values()
371377
"""
372378
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
373379
FROM [PrimitiveCollectionsEntity] AS [p]
374-
WHERE GREATEST(30, [p].[Int]) = 30
380+
WHERE (
381+
SELECT MAX([v].[Value])
382+
FROM (VALUES (CAST(30 AS int)), ([p].[Int])) AS [v]([Value])) = 30
375383
""");
376384
}
377385

@@ -385,7 +393,9 @@ public override async Task Inline_collection_Min_with_three_values()
385393
386394
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
387395
FROM [PrimitiveCollectionsEntity] AS [p]
388-
WHERE LEAST(30, [p].[Int], @i) = 25
396+
WHERE (
397+
SELECT MIN([v].[Value])
398+
FROM (VALUES (CAST(30 AS int)), ([p].[Int]), (@i)) AS [v]([Value])) = 25
389399
""");
390400
}
391401

@@ -399,7 +409,9 @@ public override async Task Inline_collection_List_Min_with_three_values()
399409
400410
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
401411
FROM [PrimitiveCollectionsEntity] AS [p]
402-
WHERE LEAST(30, [p].[Int], @i) = 25
412+
WHERE (
413+
SELECT MIN([v].[Value])
414+
FROM (VALUES (CAST(30 AS int)), ([p].[Int]), (@i)) AS [v]([Value])) = 25
403415
""");
404416
}
405417

@@ -413,7 +425,9 @@ public override async Task Inline_collection_Max_with_three_values()
413425
414426
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
415427
FROM [PrimitiveCollectionsEntity] AS [p]
416-
WHERE GREATEST(30, [p].[Int], @i) = 35
428+
WHERE (
429+
SELECT MAX([v].[Value])
430+
FROM (VALUES (CAST(30 AS int)), ([p].[Int]), (@i)) AS [v]([Value])) = 35
417431
""");
418432
}
419433

@@ -427,7 +441,9 @@ public override async Task Inline_collection_List_Max_with_three_values()
427441
428442
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
429443
FROM [PrimitiveCollectionsEntity] AS [p]
430-
WHERE GREATEST(30, [p].[Int], @i) = 35
444+
WHERE (
445+
SELECT MAX([v].[Value])
446+
FROM (VALUES (CAST(30 AS int)), ([p].[Int]), (@i)) AS [v]([Value])) = 35
431447
""");
432448
}
433449

@@ -441,7 +457,9 @@ public override async Task Inline_collection_of_nullable_value_type_Min()
441457
442458
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
443459
FROM [PrimitiveCollectionsEntity] AS [p]
444-
WHERE LEAST(30, [p].[Int], @i) = 25
460+
WHERE (
461+
SELECT MIN([v].[Value])
462+
FROM (VALUES (CAST(30 AS int)), ([p].[Int]), (@i)) AS [v]([Value])) = 25
445463
""");
446464
}
447465

@@ -455,7 +473,9 @@ public override async Task Inline_collection_of_nullable_value_type_Max()
455473
456474
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
457475
FROM [PrimitiveCollectionsEntity] AS [p]
458-
WHERE GREATEST(30, [p].[Int], @i) = 35
476+
WHERE (
477+
SELECT MAX([v].[Value])
478+
FROM (VALUES (CAST(30 AS int)), ([p].[Int]), (@i)) AS [v]([Value])) = 35
459479
""");
460480
}
461481

@@ -467,7 +487,9 @@ public override async Task Inline_collection_of_nullable_value_type_with_null_Mi
467487
"""
468488
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
469489
FROM [PrimitiveCollectionsEntity] AS [p]
470-
WHERE LEAST(30, [p].[NullableInt], NULL) = 30
490+
WHERE (
491+
SELECT MIN([v].[Value])
492+
FROM (VALUES (CAST(30 AS int)), ([p].[NullableInt]), (NULL)) AS [v]([Value])) = 30
471493
""");
472494
}
473495

@@ -479,7 +501,9 @@ public override async Task Inline_collection_of_nullable_value_type_with_null_Ma
479501
"""
480502
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
481503
FROM [PrimitiveCollectionsEntity] AS [p]
482-
WHERE GREATEST(30, [p].[NullableInt], NULL) = 30
504+
WHERE (
505+
SELECT MAX([v].[Value])
506+
FROM (VALUES (CAST(30 AS int)), ([p].[NullableInt]), (NULL)) AS [v]([Value])) = 30
483507
""");
484508
}
485509

@@ -1130,7 +1154,7 @@ public override async Task Column_collection_index_int()
11301154
"""
11311155
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
11321156
FROM [PrimitiveCollectionsEntity] AS [p]
1133-
WHERE CAST(JSON_VALUE([p].[Ints], '$[1]') AS int) = 10
1157+
WHERE JSON_VALUE([p].[Ints], '$[1]' RETURNING int) = 10
11341158
""");
11351159
}
11361160

@@ -1142,7 +1166,7 @@ public override async Task Column_collection_index_string()
11421166
"""
11431167
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
11441168
FROM [PrimitiveCollectionsEntity] AS [p]
1145-
WHERE JSON_VALUE([p].[Strings], '$[1]') = N'10'
1169+
WHERE JSON_VALUE([p].[Strings], '$[1]' RETURNING nvarchar(max)) = N'10'
11461170
""");
11471171
}
11481172

@@ -1154,7 +1178,7 @@ public override async Task Column_collection_index_datetime()
11541178
"""
11551179
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
11561180
FROM [PrimitiveCollectionsEntity] AS [p]
1157-
WHERE CAST(JSON_VALUE([p].[DateTimes], '$[1]') AS datetime2) = '2020-01-10T12:30:00.0000000Z'
1181+
WHERE JSON_VALUE([p].[DateTimes], '$[1]' RETURNING datetime2) = '2020-01-10T12:30:00.0000000Z'
11581182
""");
11591183
}
11601184

@@ -1166,7 +1190,7 @@ public override async Task Column_collection_index_beyond_end()
11661190
"""
11671191
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
11681192
FROM [PrimitiveCollectionsEntity] AS [p]
1169-
WHERE CAST(JSON_VALUE([p].[Ints], '$[999]') AS int) = 10
1193+
WHERE JSON_VALUE([p].[Ints], '$[999]' RETURNING int) = 10
11701194
""");
11711195
}
11721196

@@ -1179,7 +1203,7 @@ public override async Task Nullable_reference_column_collection_index_equals_nul
11791203
"""
11801204
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
11811205
FROM [PrimitiveCollectionsEntity] AS [p]
1182-
WHERE JSON_VALUE([p].[NullableStrings], '$[2]') = [p].[NullableString] OR (JSON_VALUE([p].[NullableStrings], '$[2]') IS NULL AND [p].[NullableString] IS NULL)
1206+
WHERE JSON_VALUE([p].[NullableStrings], '$[2]' RETURNING nvarchar(max)) = [p].[NullableString] OR (JSON_VALUE([p].[NullableStrings], '$[2]' RETURNING nvarchar(max)) IS NULL AND [p].[NullableString] IS NULL)
11831207
""");
11841208
}
11851209

@@ -1193,7 +1217,7 @@ public override async Task Non_nullable_reference_column_collection_index_equals
11931217
FROM [PrimitiveCollectionsEntity] AS [p]
11941218
WHERE EXISTS (
11951219
SELECT 1
1196-
FROM OPENJSON([p].[Strings]) AS [s]) AND JSON_VALUE([p].[Strings], '$[1]') = [p].[NullableString]
1220+
FROM OPENJSON([p].[Strings]) AS [s]) AND JSON_VALUE([p].[Strings], '$[1]' RETURNING nvarchar(max)) = [p].[NullableString]
11971221
""");
11981222
}
11991223

@@ -1221,11 +1245,7 @@ public override async Task Inline_collection_index_Column_with_EF_Constant()
12211245
"""
12221246
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
12231247
FROM [PrimitiveCollectionsEntity] AS [p]
1224-
WHERE (
1225-
SELECT [i].[Value]
1226-
FROM (VALUES (0, CAST(1 AS int)), (1, 2), (2, 3)) AS [i]([_ord], [Value])
1227-
ORDER BY [i].[_ord]
1228-
OFFSET [p].[Int] ROWS FETCH NEXT 1 ROWS ONLY) = 1
1248+
WHERE CAST(JSON_VALUE(N'[1,2,3]', '$[' + CAST([p].[Int] AS nvarchar(max)) + ']') AS int) = 1
12291249
""");
12301250
}
12311251

@@ -1299,7 +1319,7 @@ public override async Task Column_collection_ElementAt()
12991319
"""
13001320
SELECT [p].[Id], [p].[Bool], [p].[Bools], [p].[DateTime], [p].[DateTimes], [p].[Enum], [p].[Enums], [p].[Int], [p].[Ints], [p].[NullableInt], [p].[NullableInts], [p].[NullableString], [p].[NullableStrings], [p].[NullableWrappedId], [p].[NullableWrappedIdWithNullableComparer], [p].[String], [p].[Strings], [p].[WrappedId]
13011321
FROM [PrimitiveCollectionsEntity] AS [p]
1302-
WHERE CAST(JSON_VALUE([p].[Ints], '$[1]') AS int) = 10
1322+
WHERE JSON_VALUE([p].[Ints], '$[1]' RETURNING int) = 10
13031323
""");
13041324
}
13051325

@@ -1827,7 +1847,7 @@ SELECT COUNT(*)
18271847
SELECT [i1].[Value]
18281848
FROM (
18291849
SELECT [i].[Value]
1830-
FROM (VALUES (1, @ints1), (2, @ints2)) AS [i]([_ord], [Value])
1850+
FROM (VALUES (0, @ints1), (1, @ints2)) AS [i]([_ord], [Value])
18311851
ORDER BY [i].[_ord]
18321852
OFFSET 1 ROWS
18331853
) AS [i1]
@@ -1917,7 +1937,7 @@ FROM [PrimitiveCollectionsEntity] AS [p]
19171937
SELECT COUNT(*)
19181938
FROM (
19191939
SELECT [i].[Value] AS [Value0]
1920-
FROM (VALUES (1, @ints1), (2, @ints2)) AS [i]([_ord], [Value])
1940+
FROM (VALUES (0, @ints1), (1, @ints2)) AS [i]([_ord], [Value])
19211941
ORDER BY [i].[_ord]
19221942
OFFSET 1 ROWS
19231943
) AS [i0]
@@ -2147,7 +2167,7 @@ public override async Task Project_primitive_collections_element()
21472167

21482168
AssertSql(
21492169
"""
2150-
SELECT CAST(JSON_VALUE([p].[Ints], '$[0]') AS int) AS [Indexer], CAST(JSON_VALUE([p].[DateTimes], '$[0]') AS datetime2) AS [EnumerableElementAt], JSON_VALUE([p].[Strings], '$[1]') AS [QueryableElementAt]
2170+
SELECT JSON_VALUE([p].[Ints], '$[0]' RETURNING int) AS [Indexer], JSON_VALUE([p].[DateTimes], '$[0]' RETURNING datetime2) AS [EnumerableElementAt], JSON_VALUE([p].[Strings], '$[1]' RETURNING nvarchar(max)) AS [QueryableElementAt]
21512171
FROM [PrimitiveCollectionsEntity] AS [p]
21522172
WHERE [p].[Id] < 4
21532173
ORDER BY [p].[Id]
@@ -2267,10 +2287,6 @@ public TestSqlLoggerFactory TestSqlLoggerFactory
22672287
protected override ITestStoreFactory TestStoreFactory
22682288
=> SqlServerTestStoreFactory.Instance;
22692289

2270-
public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder)
2271-
=> base.AddOptions(builder)
2272-
.UseSqlServer(b => b.UseCompatibilityLevel(160));
2273-
22742290
protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context)
22752291
{
22762292
base.OnModelCreating(modelBuilder, context);

0 commit comments

Comments
 (0)