Skip to content

Commit ad5af3e

Browse files
committed
Merge branch 'main' into SqlClient-preview
2 parents 36c2c6f + b7c4132 commit ad5af3e

10 files changed

Lines changed: 43 additions & 77 deletions

File tree

readme.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ var application = webApplicationBuilder.Build();
374374
application.UseDelta(
375375
getConnection: httpContext => httpContext.RequestServices.GetRequiredService<SqlConnection>());
376376
```
377-
<sup><a href='/src/DeltaTests/Usage.cs#L340-L346' title='Snippet source file'>snippet source</a> | <a href='#snippet-CustomDiscoveryConnection' title='Start of snippet'>anchor</a></sup>
377+
<sup><a href='/src/DeltaTests/Usage.cs#L335-L341' title='Snippet source file'>snippet source</a> | <a href='#snippet-CustomDiscoveryConnection' title='Start of snippet'>anchor</a></sup>
378378
<!-- endSnippet -->
379379

380380
To use custom connection and transaction discovery:
@@ -392,7 +392,7 @@ application.UseDelta(
392392
return new(connection, transaction);
393393
});
394394
```
395-
<sup><a href='/src/DeltaTests/Usage.cs#L351-L363' title='Snippet source file'>snippet source</a> | <a href='#snippet-CustomDiscoveryConnectionAndTransaction' title='Start of snippet'>anchor</a></sup>
395+
<sup><a href='/src/DeltaTests/Usage.cs#L346-L358' title='Snippet source file'>snippet source</a> | <a href='#snippet-CustomDiscoveryConnectionAndTransaction' title='Start of snippet'>anchor</a></sup>
396396
<!-- endSnippet -->
397397

398398

@@ -580,7 +580,7 @@ Nuget: [Delta.SqlServer](https://www.nuget.org/packages/Delta.SqlServer)
580580
```cs
581581
var timeStamp = await sqlConnection.GetLastTimeStamp();
582582
```
583-
<sup><a href='/src/DeltaTests/Usage.cs#L193-L197' title='Snippet source file'>snippet source</a> | <a href='#snippet-GetLastTimeStampSqlConnection' title='Start of snippet'>anchor</a></sup>
583+
<sup><a href='/src/DeltaTests/Usage.cs#L188-L192' title='Snippet source file'>snippet source</a> | <a href='#snippet-GetLastTimeStampSqlConnection' title='Start of snippet'>anchor</a></sup>
584584
<!-- endSnippet -->
585585

586586

@@ -608,7 +608,7 @@ foreach (var db in trackedDatabases)
608608
Trace.WriteLine(db);
609609
}
610610
```
611-
<sup><a href='/src/DeltaTests/Usage.cs#L229-L237' title='Snippet source file'>snippet source</a> | <a href='#snippet-GetDatabasesWithTracking' title='Start of snippet'>anchor</a></sup>
611+
<sup><a href='/src/DeltaTests/Usage.cs#L224-L232' title='Snippet source file'>snippet source</a> | <a href='#snippet-GetDatabasesWithTracking' title='Start of snippet'>anchor</a></sup>
612612
<!-- endSnippet -->
613613

614614
Uses the following SQL:
@@ -638,7 +638,7 @@ foreach (var db in trackedTables)
638638
Trace.WriteLine(db);
639639
}
640640
```
641-
<sup><a href='/src/DeltaTests/Usage.cs#L255-L263' title='Snippet source file'>snippet source</a> | <a href='#snippet-GetTrackedTables' title='Start of snippet'>anchor</a></sup>
641+
<sup><a href='/src/DeltaTests/Usage.cs#L250-L258' title='Snippet source file'>snippet source</a> | <a href='#snippet-GetTrackedTables' title='Start of snippet'>anchor</a></sup>
642642
<!-- endSnippet -->
643643

644644
Uses the following SQL:
@@ -663,7 +663,7 @@ Determine if change tracking is enabled for a database.
663663
```cs
664664
var isTrackingEnabled = await sqlConnection.IsTrackingEnabled();
665665
```
666-
<sup><a href='/src/DeltaTests/Usage.cs#L329-L333' title='Snippet source file'>snippet source</a> | <a href='#snippet-IsTrackingEnabled' title='Start of snippet'>anchor</a></sup>
666+
<sup><a href='/src/DeltaTests/Usage.cs#L324-L328' title='Snippet source file'>snippet source</a> | <a href='#snippet-IsTrackingEnabled' title='Start of snippet'>anchor</a></sup>
667667
<!-- endSnippet -->
668668

669669
Uses the following SQL:
@@ -690,7 +690,7 @@ Enable change tracking for a database.
690690
```cs
691691
await sqlConnection.EnableTracking();
692692
```
693-
<sup><a href='/src/DeltaTests/Usage.cs#L323-L327' title='Snippet source file'>snippet source</a> | <a href='#snippet-EnableTracking' title='Start of snippet'>anchor</a></sup>
693+
<sup><a href='/src/DeltaTests/Usage.cs#L318-L322' title='Snippet source file'>snippet source</a> | <a href='#snippet-EnableTracking' title='Start of snippet'>anchor</a></sup>
694694
<!-- endSnippet -->
695695

696696
Uses the following SQL:
@@ -718,7 +718,7 @@ Disable change tracking for a database and all tables within that database.
718718
```cs
719719
await sqlConnection.DisableTracking();
720720
```
721-
<sup><a href='/src/DeltaTests/Usage.cs#L308-L312' title='Snippet source file'>snippet source</a> | <a href='#snippet-DisableTracking' title='Start of snippet'>anchor</a></sup>
721+
<sup><a href='/src/DeltaTests/Usage.cs#L303-L307' title='Snippet source file'>snippet source</a> | <a href='#snippet-DisableTracking' title='Start of snippet'>anchor</a></sup>
722722
<!-- endSnippet -->
723723

724724
Uses the following SQL:
@@ -755,7 +755,7 @@ Enables change tracking for all tables listed, and disables change tracking for
755755
```cs
756756
await sqlConnection.SetTrackedTables(["Companies"]);
757757
```
758-
<sup><a href='/src/DeltaTests/Usage.cs#L249-L253' title='Snippet source file'>snippet source</a> | <a href='#snippet-SetTrackedTables' title='Start of snippet'>anchor</a></sup>
758+
<sup><a href='/src/DeltaTests/Usage.cs#L244-L248' title='Snippet source file'>snippet source</a> | <a href='#snippet-SetTrackedTables' title='Start of snippet'>anchor</a></sup>
759759
<!-- endSnippet -->
760760

761761
Uses the following SQL:

src/.editorconfig

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,9 @@ dotnet_style_coalesce_expression = false:error
272272
dotnet_style_null_propagation = true:error
273273
dotnet_style_explicit_tuple_names = true:error
274274

275+
# Use collection expression syntax
276+
resharper_use_collection_expression_highlighting = error
277+
275278
# Prefer "var" everywhere
276279
csharp_style_var_for_built_in_types = true:error
277280
csharp_style_var_when_type_is_apparent = true:error
@@ -352,7 +355,7 @@ ij_xml_space_inside_empty_tag = true
352355
indent_size = 2
353356

354357
# Verify settings
355-
[*.{received,verified}.{txt,xml,json,md,sql,csv,html,md}]
358+
[*.{received,verified}.{txt,xml,json,md,sql,csv,html,htm,md}]
356359
charset = "utf-8-bom"
357360
end_of_line = lf
358361
indent_size = unset

src/Delta.EF/Delta.EF.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<ItemGroup>
99
<PackageReference Include="ProjectDefaults" PrivateAssets="all" />
1010
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" />
11+
<PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="all" />
1112
<Compile Include="..\Delta\DeltaExtensions_Sql.cs">
1213
<Link>DeltaExtensions_Sql.cs</Link>
1314
</Compile>

src/Delta.EFTests/Usage.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ public static void ShouldExecute(WebApplicationBuilder builder)
2626
#endregion
2727
}
2828

29-
[TestCase(true)]
29+
[Test]
3030
[TestCase(false)]
31-
public async Task GetLastTimeStamp(bool tracking)
31+
public async Task GetLastTimeStamp([Values] bool tracking)
3232
{
3333
await using var database = await LocalDb();
3434
if (tracking)
@@ -47,9 +47,8 @@ public async Task GetLastTimeStamp(bool tracking)
4747
IsNotNull(timeStamp);
4848
}
4949

50-
[TestCase(true)]
51-
[TestCase(false)]
52-
public async Task LastTimeStamp(bool tracking)
50+
[Test]
51+
public async Task LastTimeStamp([Values] bool tracking)
5352
{
5453
await using var database = await LocalDb();
5554
if (tracking)

src/Delta.SqlServer/Delta.SqlServer.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
<ItemGroup>
88
<PackageReference Include="ProjectDefaults" PrivateAssets="all" />
99
<PackageReference Include="Microsoft.Data.SqlClient" />
10+
<PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="all" />
1011
</ItemGroup>
1112
</Project>

src/Delta/Delta.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@
88
</PropertyGroup>
99
<ItemGroup>
1010
<PackageReference Include="ProjectDefaults" PrivateAssets="all" />
11+
<PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="all" />
1112
</ItemGroup>
1213
</Project>

src/DeltaTests/MiddlewareTests.cs

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
public class MiddlewareTests :
22
LocalDbTestBase
33
{
4-
[TestCaseSource(nameof(Cases))]
5-
public async Task Combinations(bool suffixFunc, bool nullSuffixFunc, bool get, bool ifNoneMatch, bool sameIfNoneMatch, bool etag, bool executeFunc, bool trueExecuteFunc, bool immutable, bool requestCacheControl)
4+
[Test]
5+
public async Task Combinations([Values] bool suffixFunc, [Values] bool nullSuffixFunc, [Values] bool get, [Values] bool ifNoneMatch, [Values] bool sameIfNoneMatch, [Values] bool etag, [Values] bool executeFunc, [Values] bool trueExecuteFunc, [Values] bool immutable, [Values] bool requestCacheControl)
66
{
77
Recording.Start();
88
var context = new DefaultHttpContext();
@@ -63,39 +63,4 @@ await Verify(
6363
})
6464
.AddScrubber(_ => _.Replace(DeltaExtensions.AssemblyWriteTime, "AssemblyWriteTime"));
6565
}
66-
67-
static bool[] bools =
68-
[
69-
true,
70-
false
71-
];
72-
73-
public static IEnumerable<object[]> Cases()
74-
{
75-
foreach (var useSuffixFunc in bools)
76-
foreach (var useNullSuffixFunc in bools)
77-
foreach (var isGet in bools)
78-
foreach (var hasIfNoneMatch in bools)
79-
foreach (var hasImmutableCache in bools)
80-
foreach (var hasSameIfNoneMatch in bools)
81-
foreach (var alreadyHasEtag in bools)
82-
foreach (var useShouldExecuteFunc in bools)
83-
foreach (var useTrueShouldExecuteFunc in bools)
84-
foreach (var requestCacheControl in bools)
85-
{
86-
yield return
87-
[
88-
useSuffixFunc,
89-
useNullSuffixFunc,
90-
isGet,
91-
hasIfNoneMatch,
92-
hasSameIfNoneMatch,
93-
alreadyHasEtag,
94-
useShouldExecuteFunc,
95-
useTrueShouldExecuteFunc,
96-
hasImmutableCache,
97-
requestCacheControl
98-
];
99-
}
100-
}
10166
}

src/DeltaTests/Usage.cs

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ public static void ShouldExecute(WebApplicationBuilder builder)
2929
#endregion
3030
}
3131

32-
[TestCase(true)]
33-
[TestCase(false)]
34-
public async Task LastTimeStamp(bool tracking)
32+
[Test]
33+
public async Task LastTimeStamp([Values] bool tracking)
3534
{
3635
await using var database = await LocalDb();
3736
if (tracking)
@@ -68,9 +67,8 @@ static async Task AssertTimestamps(bool tracking, SqlDatabase database, Func<Sql
6867
AreNotEqual(newLsnTimeStamp, lsnTimeStamp);
6968
}
7069

71-
[TestCase(true)]
72-
[TestCase(false)]
73-
public async Task LastTimeStampOnUpdate(bool tracking)
70+
[Test]
71+
public async Task LastTimeStampOnUpdate([Values] bool tracking)
7472
{
7573
await using var database = await LocalDb();
7674
if (tracking)
@@ -96,9 +94,8 @@ update Companies
9694
await command.ExecuteNonQueryAsync();
9795
}
9896

99-
[TestCase(true)]
100-
[TestCase(false)]
101-
public async Task LastTimeStampOnDelete(bool tracking)
97+
[Test]
98+
public async Task LastTimeStampOnDelete([Values] bool tracking)
10299
{
103100
await using var database = await LocalDb();
104101
if (tracking)
@@ -111,9 +108,8 @@ public async Task LastTimeStampOnDelete(bool tracking)
111108
await AssertTimestamps(tracking, database, connection => DeleteEntity(connection, companyGuid));
112109
}
113110

114-
[TestCase(true)]
115-
[TestCase(false)]
116-
public async Task LastTimeStampReadTwice(bool tracking)
111+
[Test]
112+
public async Task LastTimeStampReadTwice([Values] bool tracking)
117113
{
118114
await using var database = await LocalDb();
119115
if (tracking)
@@ -178,9 +174,8 @@ static async Task TruncateTable(SqlConnection connection)
178174
await command.ExecuteNonQueryAsync();
179175
}
180176

181-
[TestCase(true)]
182-
[TestCase(false)]
183-
public async Task GetLastTimeStampSqlServer(bool tracking)
177+
[Test]
178+
public async Task GetLastTimeStampSqlServer([Values] bool tracking)
184179
{
185180
await using var database = await LocalDb();
186181
if (tracking)

src/Directory.Packages.props

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,25 @@
44
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
55
</PropertyGroup>
66
<ItemGroup>
7-
<PackageVersion Include="EfLocalDb" Version="20.0.3" />
8-
<PackageVersion Include="LocalDb" Version="20.0.3" />
9-
<PackageVersion Include="MarkdownSnippets.MsBuild" Version="27.0.2" />
107
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.1.0-preview1.25120.4" />
11-
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
12-
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.4" />
13-
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.4" />
8+
<PackageVersion Include="EfLocalDb" Version="20.1.3" />
9+
<PackageVersion Include="LocalDb" Version="20.1.3" />
10+
<PackageVersion Include="MarkdownSnippets.MsBuild" Version="28.0.0-beta.2" />
11+
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.5" />
12+
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.5" />
13+
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.5" />
1414
<PackageVersion Include="Npgsql" Version="9.0.3" />
1515
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
16-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
16+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.0" />
1717
<PackageVersion Include="NUnit" Version="4.3.2" />
1818
<PackageVersion Include="NUnit3TestAdapter" Version="5.0.0" />
19-
<PackageVersion Include="ProjectDefaults" Version="1.0.150" />
19+
<PackageVersion Include="ProjectDefaults" Version="1.0.153" />
2020
<PackageVersion Include="Verify.AspNetCore" Version="4.2.0" />
2121
<PackageVersion Include="Verify.DiffPlex" Version="3.1.2" />
2222
<PackageVersion Include="Verify.EntityFramework" Version="13.1.1" />
2323
<PackageVersion Include="Verify.MicrosoftLogging" Version="4.0.1" />
24-
<PackageVersion Include="Verify.NUnit" Version="30.0.0" />
24+
<PackageVersion Include="Verify.NUnit" Version="30.1.0" />
2525
<PackageVersion Include="Verify.SqlServer" Version="11.1.1" />
26+
<PackageVersion Include="Microsoft.Sbom.Targets" Version="4.0.3" />
2627
</ItemGroup>
2728
</Project>

src/global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "9.0.203",
3+
"version": "9.0.300",
44
"allowPrerelease": true,
55
"rollForward": "latestFeature"
66
}

0 commit comments

Comments
 (0)