diff --git a/src/EFCore.SqlServer.NTS/Scaffolding/Internal/SqlServerNetTopologySuiteCodeGeneratorPlugin.cs b/src/EFCore.SqlServer.NTS/Scaffolding/Internal/SqlServerNetTopologySuiteCodeGeneratorPlugin.cs index 3eff03534db..d66ec2b1da8 100644 --- a/src/EFCore.SqlServer.NTS/Scaffolding/Internal/SqlServerNetTopologySuiteCodeGeneratorPlugin.cs +++ b/src/EFCore.SqlServer.NTS/Scaffolding/Internal/SqlServerNetTopologySuiteCodeGeneratorPlugin.cs @@ -20,7 +20,7 @@ public class SqlServerNetTopologySuiteCodeGeneratorPlugin : ProviderCodeGenerato private static readonly MethodInfo _useNetTopologySuiteMethodInfo = typeof(SqlServerNetTopologySuiteDbContextOptionsBuilderExtensions).GetRequiredRuntimeMethod( nameof(SqlServerNetTopologySuiteDbContextOptionsBuilderExtensions.UseNetTopologySuite), - typeof(Action)); + typeof(SqlServerDbContextOptionsBuilder)); /// /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to diff --git a/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs b/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs index d0f21d8c079..8589c30dbc6 100644 --- a/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs +++ b/test/EFCore.SqlServer.Tests/Scaffolding/SqlServerCodeGeneratorTest.cs @@ -55,6 +55,29 @@ public virtual void Use_provider_method_is_generated_correctly_with_options() Assert.Null(result.ChainedCall); } + [ConditionalFact] + public virtual void Use_provider_method_is_generated_correctly_with_NetTopologySuite() + { + var codeGenerator = new SqlServerCodeGenerator( + new ProviderCodeGeneratorDependencies( + new[] { new SqlServerNetTopologySuiteCodeGeneratorPlugin() })); + + var result = ((IProviderConfigurationCodeGenerator)codeGenerator).GenerateUseProvider("Data Source=Test"); + + Assert.Equal("UseSqlServer", result.Method); + Assert.Collection( + result.Arguments, + a => Assert.Equal("Data Source=Test", a), + a => + { + var nestedClosure = Assert.IsType(a); + + Assert.Equal("x", nestedClosure.Parameter); + Assert.Equal("UseNetTopologySuite", nestedClosure.MethodCalls[0].Method); + }); + Assert.Null(result.ChainedCall); + } + private static readonly MethodInfo _setProviderOptionMethodInfo = typeof(SqlServerCodeGeneratorTest).GetRuntimeMethod(nameof(SetProviderOption), new[] { typeof(DbContextOptionsBuilder) }); diff --git a/test/EFCore.Sqlite.Tests/Scaffolding/SqliteCodeGeneratorTest.cs b/test/EFCore.Sqlite.Tests/Scaffolding/SqliteCodeGeneratorTest.cs index 1e8f8a3bc91..6e2ba2522df 100644 --- a/test/EFCore.Sqlite.Tests/Scaffolding/SqliteCodeGeneratorTest.cs +++ b/test/EFCore.Sqlite.Tests/Scaffolding/SqliteCodeGeneratorTest.cs @@ -54,6 +54,29 @@ public virtual void Use_provider_method_is_generated_correctly_with_options() Assert.Null(result.ChainedCall); } + [ConditionalFact] + public virtual void Use_provider_method_is_generated_correctly_with_NetTopologySuite() + { + var codeGenerator = new SqliteCodeGenerator( + new ProviderCodeGeneratorDependencies( + new[] { new SqliteNetTopologySuiteCodeGeneratorPlugin() })); + + var result = ((IProviderConfigurationCodeGenerator)codeGenerator).GenerateUseProvider("Data Source=Test"); + + Assert.Equal("UseSqlite", result.Method); + Assert.Collection( + result.Arguments, + a => Assert.Equal("Data Source=Test", a), + a => + { + var nestedClosure = Assert.IsType(a); + + Assert.Equal("x", nestedClosure.Parameter); + Assert.Equal("UseNetTopologySuite", nestedClosure.MethodCalls[0].Method); + }); + Assert.Null(result.ChainedCall); + } + private static readonly MethodInfo _setProviderOptionMethodInfo = typeof(SqliteCodeGeneratorTest).GetRuntimeMethod(nameof(SetProviderOption), new[] { typeof(DbContextOptionsBuilder) });