Skip to content

Commit dbadeff

Browse files
committed
Upgrade to EF9
1 parent a623581 commit dbadeff

File tree

65 files changed

+449
-404
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+449
-404
lines changed

.config/dotnet-tools.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@
33
"isRoot": true,
44
"tools": {
55
"dotnet-format": {
6-
"version": "8.0.453106",
6+
"version": "9.0.520307",
77
"commands": [
88
"dotnet-format"
99
]
1010
},
1111
"dotnet-reportgenerator-globaltool": {
12-
"version": "5.3.7",
12+
"version": "5.4.1",
1313
"commands": [
1414
"reportgenerator"
1515
]
1616
},
1717
"dotnet-t4": {
18-
"version": "2.3.1",
18+
"version": "3.0.0",
1919
"commands": [
2020
"t4"
2121
]

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ jobs:
8080
with:
8181
dotnet-version: |
8282
8.0.x
83+
9.0.x
8384
8485
- uses: dotnet/nbgv@master
8586
id: nbgv

Directory.Build.props

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<TargetFrameworks Condition="$(DefineConstants.Contains(EF_CORE_6)) or $(DefineConstants.Contains(EF_CORE_7))">net6.0</TargetFrameworks>
4-
<TargetFrameworks Condition="!$(DefineConstants.Contains(EF_CORE_6)) and !$(DefineConstants.Contains(EF_CORE_7))">net8.0</TargetFrameworks>
3+
<TargetFrameworks>net8.0</TargetFrameworks>
54
<Copyright>© Zomp Inc. All rights reserved.</Copyright>
65
<Company>Zomp</Company>
76
<Authors>Victor Irzak</Authors>
@@ -23,9 +22,6 @@
2322
<!-- Don't enforce prefixing local calls with this -->
2423
<NoWarn>$(NoWarn);SA1101</NoWarn>
2524

26-
<!-- Remove when fixed: https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3687 -->
27-
<NoWarn>$(NoWarn);SA1010</NoWarn>
28-
2925
<AnalysisLevel>latest</AnalysisLevel>
3026
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
3127
</PropertyGroup>

Directory.Packages.props

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,35 @@
11
<Project>
2-
<PropertyGroup Condition="$(DefineConstants.Contains(EF_CORE_6))">
3-
<NetRuntime>6.0.0</NetRuntime>
4-
<NpgsqlVersion>6.0.5</NpgsqlVersion>
2+
<PropertyGroup Condition="$(DefineConstants.Contains(EF_CORE_8))">
3+
<NetRuntime>8.0.11</NetRuntime>
4+
<NpgsqlVersion>8.0.10</NpgsqlVersion>
55
</PropertyGroup>
6-
<PropertyGroup Condition="!$(DefineConstants.Contains(EF_CORE_6)) and $(DefineConstants.Contains(EF_CORE_7))">
7-
<NetRuntime>7.0.0</NetRuntime>
8-
<NpgsqlVersion>7.0.0</NpgsqlVersion>
9-
</PropertyGroup>
10-
<PropertyGroup Condition="!$(DefineConstants.Contains(EF_CORE_6)) and !$(DefineConstants.Contains(EF_CORE_7))">
11-
<NetRuntime>8.0.6</NetRuntime>
12-
<NpgsqlVersion>8.0.4</NpgsqlVersion>
6+
<PropertyGroup Condition="!$(DefineConstants.Contains(EF_CORE_8))">
7+
<NetRuntime>9.0.0</NetRuntime>
8+
<NpgsqlVersion>9.0.2</NpgsqlVersion>
139
</PropertyGroup>
1410
<ItemGroup>
1511
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
16-
<PackageVersion Include="Fody" Version="6.8.1" />
12+
<PackageVersion Include="Fody" Version="6.9.1" />
1713
<PackageVersion Include="InfoOf.Fody" Version="2.2.0" />
1814
<PackageVersion Include="MartinCostello.Logging.XUnit" Version="0.4.0" />
19-
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0-preview.24225.1" />
15+
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" />
2016
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="$(NetRuntime)" />
2117
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="$(NetRuntime)" />
2218
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="$(NetRuntime)" />
2319
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(NetRuntime)" />
2420
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="$(NetRuntime)" />
25-
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
26-
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.1" />
27-
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
28-
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
29-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
21+
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
22+
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
23+
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.0" />
24+
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
25+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
3026
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
31-
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.6.139" />
27+
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.7.112" />
3228
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="$(NpgsqlVersion)" />
33-
<PackageVersion Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.1.8" />
29+
<PackageVersion Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.1.10" />
3430
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
35-
<PackageVersion Include="xunit" Version="2.8.1" />
36-
<PackageVersion Include="xunit.skippablefact" Version="1.4.13" />
37-
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.1" />
31+
<PackageVersion Include="xunit" Version="2.9.2" />
32+
<PackageVersion Include="xunit.skippablefact" Version="1.5.23" />
33+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.0.0" />
3834
</ItemGroup>
3935
</Project>

NuGet.Config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<packageSources>
44
<clear />
55
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
6-
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json" />
6+
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
77
</packageSources>
88

99
<packageSourceMapping>

src/Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
<Using Include="Microsoft.EntityFrameworkCore.Metadata" />
3636
<Using Include="Microsoft.EntityFrameworkCore.Storage" />
3737
<Using Include="Microsoft.Extensions.DependencyInjection" />
38+
<Using Include="System.Diagnostics.CodeAnalysis" />
3839
<Using Include="System.Linq.Expressions" />
3940
</ItemGroup>
4041

src/Zomp.EFCore.BinaryFunctions.Npgsql/Extensions/NpgsqlDbContextOptionsBuilderExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Zomp.EFCore.BinaryFunctions.Npgsql;
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
2+
namespace Zomp.EFCore.BinaryFunctions.Npgsql;
3+
#pragma warning restore IDE0130 // Namespace does not match folder structure
24

35
/// <summary>
46
/// Window function extension methods for <see cref="NpgsqlDbContextOptionsBuilder" />.

src/Zomp.EFCore.BinaryFunctions.Npgsql/Query/Internal/BinaryNpgsqlQuerySqlGenerator.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0290:Use primary constructor", Justification = "Multiple versions")]
77
public class BinaryNpgsqlQuerySqlGenerator : NpgsqlQuerySqlGenerator
88
{
9-
#if !EF_CORE_7 && !EF_CORE_6
109
/// <summary>
1110
/// Initializes a new instance of the <see cref="BinaryNpgsqlQuerySqlGenerator"/> class.
1211
/// </summary>
@@ -18,18 +17,6 @@ public BinaryNpgsqlQuerySqlGenerator(QuerySqlGeneratorDependencies dependencies,
1817
: base(dependencies, relationalTypeMappingSource, reverseNullOrderingEnabled, postgresVersion)
1918
{
2019
}
21-
#else
22-
/// <summary>
23-
/// Initializes a new instance of the <see cref="BinaryNpgsqlQuerySqlGenerator"/> class.
24-
/// </summary>
25-
/// <param name="dependencies">Service dependencies.</param>
26-
/// <param name="reverseNullOrderingEnabled">Null Ordering.</param>
27-
/// <param name="postgresVersion">Postgres Version.</param>
28-
public BinaryNpgsqlQuerySqlGenerator(QuerySqlGeneratorDependencies dependencies, bool reverseNullOrderingEnabled, Version postgresVersion)
29-
: base(dependencies, reverseNullOrderingEnabled, postgresVersion)
30-
{
31-
}
32-
#endif
3320

3421
/// <inheritdoc/>
3522
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0072:Add missing cases", Justification = "Only interested in Add for binary")]

src/Zomp.EFCore.BinaryFunctions.Npgsql/Query/Internal/BinaryNpgsqlQuerySqlGeneratorFactory.cs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,9 @@
77
public class BinaryNpgsqlQuerySqlGeneratorFactory : NpgsqlQuerySqlGeneratorFactory
88
{
99
private readonly QuerySqlGeneratorDependencies dependencies;
10-
#if !EF_CORE_7 && !EF_CORE_6
1110
private readonly IRelationalTypeMappingSource relationalTypeMappingSource;
12-
#endif
1311
private readonly INpgsqlSingletonOptions npgsqlOptions;
1412

15-
#if !EF_CORE_7 && !EF_CORE_6
1613
/// <summary>
1714
/// Initializes a new instance of the <see cref="BinaryNpgsqlQuerySqlGeneratorFactory"/> class.
1815
/// </summary>
@@ -26,27 +23,8 @@ public BinaryNpgsqlQuerySqlGeneratorFactory(QuerySqlGeneratorDependencies depend
2623
this.relationalTypeMappingSource = relationalTypeMappingSource;
2724
this.npgsqlOptions = npgsqlOptions;
2825
}
29-
#else
30-
/// <summary>
31-
/// Initializes a new instance of the <see cref="BinaryNpgsqlQuerySqlGeneratorFactory"/> class.
32-
/// </summary>
33-
/// <param name="dependencies">Service dependencies.</param>
34-
/// <param name="npgsqlOptions">Options for Npgsql.</param>
35-
public BinaryNpgsqlQuerySqlGeneratorFactory(QuerySqlGeneratorDependencies dependencies, INpgsqlSingletonOptions npgsqlOptions)
36-
: base(dependencies, npgsqlOptions)
37-
{
38-
this.dependencies = dependencies;
39-
this.npgsqlOptions = npgsqlOptions;
40-
}
41-
#endif
4226

43-
#if !EF_CORE_7 && !EF_CORE_6
4427
/// <inheritdoc/>
4528
public override QuerySqlGenerator Create()
4629
=> new BinaryNpgsqlQuerySqlGenerator(dependencies, relationalTypeMappingSource, npgsqlOptions.ReverseNullOrderingEnabled, npgsqlOptions.PostgresVersion);
47-
#else
48-
/// <inheritdoc/>
49-
public override QuerySqlGenerator Create()
50-
=> new BinaryNpgsqlQuerySqlGenerator(dependencies, npgsqlOptions.ReverseNullOrderingEnabled, npgsqlOptions.PostgresVersion);
51-
#endif
5230
}

src/Zomp.EFCore.BinaryFunctions.Npgsql/Query/Internal/NpgsqlBinaryTranslator.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,15 @@ protected override SqlExpression GetBytes(SqlExpression sqlExpression)
5050
}
5151

5252
// Every byte is two characters in hex, thus multiply by 2
53+
#if !EF_CORE_8
54+
var byteSize = new SqlConstantExpression(sizeOfType * 2, null);
55+
var zero = new SqlConstantExpression("0", null);
56+
var hex = new SqlConstantExpression("hex", null);
57+
#else
5358
var byteSize = new SqlConstantExpression(Expression.Constant(sizeOfType * 2), null);
5459
var zero = new SqlConstantExpression(Expression.Constant("0"), null);
5560
var hex = new SqlConstantExpression(Expression.Constant("hex"), null);
61+
#endif
5662
var lPad = sqlExpressionFactory.Function("LPAD", [toHex, byteSize, zero], true, LPadArgumentsPropagateNullability, typeof(string));
5763
var decode = sqlExpressionFactory.Function("decode", [lPad, hex], true, DecodeArgumentsPropagateNullabilityArray, typeof(string), byteArrayTypeMapping);
5864
return new SqlUnaryExpression(ExpressionType.Convert, decode, typeof(byte[]), byteArrayTypeMapping);

src/Zomp.EFCore.BinaryFunctions.SqlServer/Extensions/SqlServerDbContextOptionsBuilderExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Zomp.EFCore.BinaryFunctions.SqlServer;
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
2+
namespace Zomp.EFCore.BinaryFunctions.SqlServer;
3+
#pragma warning restore IDE0130 // Namespace does not match folder structure
24

35
/// <summary>
46
/// Window function extension methods for <see cref="SqlServerDbContextOptionsBuilder" />.

src/Zomp.EFCore.BinaryFunctions.SqlServer/Infrastructure/Internal/SqlServerBinaryTranslator.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,16 @@ public class SqlServerBinaryTranslator(ISqlExpressionFactory sqlExpressionFactor
1515

1616
// Constants
1717
private static readonly double TwoToThePowerOfMinus52 = Math.Pow(2d, -52);
18+
19+
#if !EF_CORE_8
20+
private static readonly SqlExpression TwoToThePowerOfMinus52Sql = new SqlConstantExpression(TwoToThePowerOfMinus52, null);
21+
private static readonly SqlExpression OneFloat = new SqlConstantExpression(1d, null);
22+
private static readonly SqlExpression TwoFloat = new SqlConstantExpression(2d, null);
23+
#else
1824
private static readonly SqlExpression TwoToThePowerOfMinus52Sql = new SqlConstantExpression(Expression.Constant(TwoToThePowerOfMinus52), null);
1925
private static readonly SqlExpression OneFloat = new SqlConstantExpression(Expression.Constant(1d), null);
2026
private static readonly SqlExpression TwoFloat = new SqlConstantExpression(Expression.Constant(2d), null);
27+
#endif
2128

2229
// Must be varbinary.
2330
private static readonly SqlExpression X000FFFFFFFFFFFFF = new SqlFragmentExpression("0x000FFFFFFFFFFFFF");
@@ -51,7 +58,11 @@ private SqlBinaryExpression ToDouble(SqlExpression sqlExpression)
5158
{
5259
var colNameBigInt = new SqlUnaryExpression(ExpressionType.Convert, sqlExpression, typeof(long), null);
5360

61+
#if !EF_CORE_8
62+
var sql1023 = new SqlConstantExpression(1023, null);
63+
#else
5464
var sql1023 = new SqlConstantExpression(Expression.Constant(1023), null);
65+
#endif
5566

5667
// Line 1
5768
var l1 = sqlExpressionFactory.Function("SIGN", [colNameBigInt], true, SignArgumentsPropagateNullability, colNameBigInt.Type);

src/Zomp.EFCore.BinaryFunctions.SqlServer/Storage/Internal/BinarySqlServerTypeMappingSource.cs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
[System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0290:Use primary constructor", Justification = "Multiple versions")]
77
public class BinarySqlServerTypeMappingSource : SqlServerTypeMappingSource
88
{
9-
#if !EF_CORE_6 && !EF_CORE_7
109
/// <summary>
1110
/// Initializes a new instance of the <see cref="BinarySqlServerTypeMappingSource"/> class.
1211
/// </summary>
@@ -16,17 +15,6 @@ public BinarySqlServerTypeMappingSource(TypeMappingSourceDependencies dependenci
1615
: base(dependencies, relationalDependencies)
1716
{
1817
}
19-
#else
20-
/// <summary>
21-
/// Initializes a new instance of the <see cref="BinarySqlServerTypeMappingSource"/> class.
22-
/// </summary>
23-
/// <param name="dependencies">Type mapping source dependencies.</param>
24-
/// <param name="relationalDependencies">Relational type mapping source dependencies.</param>
25-
public BinarySqlServerTypeMappingSource(TypeMappingSourceDependencies dependencies, RelationalTypeMappingSourceDependencies relationalDependencies)
26-
: base(dependencies, relationalDependencies)
27-
{
28-
}
29-
#endif
3018

3119
/// <inheritdoc/>
3220
protected override RelationalTypeMapping? FindMapping(in RelationalTypeMappingInfo mappingInfo)

src/Zomp.EFCore.BinaryFunctions.Sqlite/Extensions/SqliteDbContextOptionsBuilderExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Zomp.EFCore.BinaryFunctions.Sqlite;
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
2+
namespace Zomp.EFCore.BinaryFunctions.Sqlite;
3+
#pragma warning restore IDE0130 // Namespace does not match folder structure
24

35
/// <summary>
46
/// Window function extension methods for <see cref="SqliteDbContextOptionsBuilderExtensions" />.

src/Zomp.EFCore.BinaryFunctions.Sqlite/Query/Internal/SqliteBinaryTranslator.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,13 @@ protected override SqlExpression BinaryCast(SqlExpression sqlExpression, Type to
2626
var maxValue = 1L << (sizeInBytes * 8);
2727
var maxValueSigned = 1L << ((sizeInBytes * 8) - 1);
2828

29+
#if !EF_CORE_8
30+
var maxValueSql = new SqlConstantExpression(maxValue, null);
31+
var maxValueSignedSql = new SqlConstantExpression(maxValueSigned, null);
32+
#else
2933
var maxValueSql = new SqlConstantExpression(Expression.Constant(maxValue), null);
3034
var maxValueSignedSql = new SqlConstantExpression(Expression.Constant(maxValueSigned), null);
35+
#endif
3136

3237
// Equivalent of substring on binary data
3338
var modResult = new SqlBinaryExpression(ExpressionType.Modulo, sqlExpression, maxValueSql, fromType, null);

src/Zomp.EFCore.BinaryFunctions/Extensions/BinaryServiceCollectionExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Zomp.EFCore.BinaryFunctions;
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
2+
namespace Zomp.EFCore.BinaryFunctions;
3+
#pragma warning restore IDE0130 // Namespace does not match folder structure
24

35
/// <summary>
46
/// Binary function extension methods for <see cref="IServiceCollection" />.

src/Zomp.EFCore.BinaryFunctions/Extensions/DbFunctionsExtensions.Binary.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Zomp.EFCore.BinaryFunctions;
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
2+
namespace Zomp.EFCore.BinaryFunctions;
3+
#pragma warning restore IDE0130 // Namespace does not match folder structure
24

35
/// <summary>
46
/// Provides extension methods for functions manipulating binary data.

src/Zomp.EFCore.BinaryFunctions/Query/Internal/BinaryTranslator.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,23 @@ private static SqlBinaryExpression Concat(IReadOnlyList<SqlExpression> arguments
8383

8484
private SqlExpression ToValue(SqlExpression sqlExpression, SqlExpression offset, Type type)
8585
=> ToValue(
86-
Substring(sqlExpression, offset, new SqlConstantExpression(Expression.Constant(Marshal.SizeOf(type)), null)),
86+
Substring(
87+
sqlExpression,
88+
offset,
89+
#if !EF_CORE_8
90+
new SqlConstantExpression(Marshal.SizeOf(type), null)),
91+
#else
92+
new SqlConstantExpression(Expression.Constant(Marshal.SizeOf(type)), null)),
93+
#endif
8794
type);
8895

89-
private SqlFunctionExpression Substring(SqlExpression bytearray, SqlExpression start, SqlExpression length) => sqlExpressionFactory.Function(
96+
private
97+
#if !EF_CORE_8
98+
SqlExpression
99+
#else
100+
SqlFunctionExpression
101+
#endif
102+
Substring(SqlExpression bytearray, SqlExpression start, SqlExpression length) => sqlExpressionFactory.Function(
90103
"SUBSTRING",
91104
[
92105
bytearray,

src/Zomp.EFCore.WindowFunctions.Npgsql/Extensions/NpgsqlDbContextOptionsBuilderExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace Zomp.EFCore.WindowFunctions.Npgsql;
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
2+
namespace Zomp.EFCore.WindowFunctions.Npgsql;
3+
#pragma warning restore IDE0130 // Namespace does not match folder structure
24

35
/// <summary>
46
/// Window function extension methods for <see cref="NpgsqlDbContextOptionsBuilder" />.

0 commit comments

Comments
 (0)