diff --git a/tests/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.Tests/AspireEFPostgreSqlExtensionsTests.cs b/tests/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.Tests/AspireEFPostgreSqlExtensionsTests.cs index b3b15b233cc..7b54bc72242 100644 --- a/tests/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.Tests/AspireEFPostgreSqlExtensionsTests.cs +++ b/tests/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL.Tests/AspireEFPostgreSqlExtensionsTests.cs @@ -113,4 +113,47 @@ public void CanConfigureDbContextOptions() #pragma warning restore EF1001 // Internal EF Core API usage. } + + /// + /// Verifies that two different DbContexts can be registered with different connection strings. + /// + [Fact] + public void CanHave2DbContexts() + { + const string connectionString2 = "Host=localhost2;Database=test2;Username=postgres2"; + + var builder = Host.CreateEmptyApplicationBuilder(null); + builder.Configuration.AddInMemoryCollection([ + new KeyValuePair("ConnectionStrings:npgsql", ConnectionString), + new KeyValuePair("ConnectionStrings:npgsql2", connectionString2), + ]); + + builder.AddNpgsqlDbContext("npgsql"); + builder.AddNpgsqlDbContext("npgsql2"); + + var host = builder.Build(); + var context = host.Services.GetRequiredService(); + var context2 = host.Services.GetRequiredService(); + + var actualConnectionString = context.Database.GetDbConnection().ConnectionString; + Assert.Equal(ConnectionString, actualConnectionString); + + actualConnectionString = context2.Database.GetDbConnection().ConnectionString; + Assert.Equal(connectionString2, actualConnectionString); + } + + public class TestDbContext2 : DbContext + { + public TestDbContext2(DbContextOptions options) : base(options) + { + } + + public DbSet Products => Set(); + + public class Product + { + public int Id { get; set; } + public string Name { get; set; } = default!; + } + } }