Work around for the identity bug to unblock CI test

Identity internally overrides the explicitly specified connection string by overriding it with a default value. This results in reusing a default database causing test failures. Until identity is fixed this is a work around.
This commit is contained in:
Praburaj 2014-05-30 12:19:19 -07:00
parent 9cb6325bf3
commit 6cd501c5f7
2 changed files with 15 additions and 1 deletions

View File

@ -9,9 +9,18 @@ namespace MusicStore.Models
public class ApplicationDbContext : IdentitySqlContext<ApplicationUser> public class ApplicationDbContext : IdentitySqlContext<ApplicationUser>
{ {
private IdentityDbContextOptions options;
public ApplicationDbContext(IServiceProvider serviceProvider, IOptionsAccessor<IdentityDbContextOptions> optionsAccessor) public ApplicationDbContext(IServiceProvider serviceProvider, IOptionsAccessor<IdentityDbContextOptions> optionsAccessor)
: base(serviceProvider, optionsAccessor.Options) : base(serviceProvider, optionsAccessor.Options)
{ {
options = optionsAccessor.Options;
}
protected override void OnConfiguring(DbContextOptions builder)
{
//Bug: Identity overriding the passed in connection string with a default value. https://github.com/aspnet/identity/issues/102
builder.UseSqlServer(options.ConnectionString);
} }
} }
@ -20,5 +29,8 @@ namespace MusicStore.Models
public string DefaultAdminUserName { get; set; } public string DefaultAdminUserName { get; set; }
public string DefaultAdminPassword { get; set; } public string DefaultAdminPassword { get; set; }
//Bug: Identity overriding the passed in connection string with a default value. https://github.com/aspnet/identity/issues/102
public string ConnectionString { get; set; }
} }
} }

View File

@ -40,7 +40,9 @@ namespace MusicStore
{ {
options.DefaultAdminUserName = configuration.Get("DefaultAdminUsername"); options.DefaultAdminUserName = configuration.Get("DefaultAdminUsername");
options.DefaultAdminPassword = configuration.Get("DefaultAdminPassword"); options.DefaultAdminPassword = configuration.Get("DefaultAdminPassword");
options.UseSqlServer(configuration.Get("Data:IdentityConnection:ConnectionString")); //Bug: Identity overriding the passed in connection string with a default value. https://github.com/aspnet/identity/issues/102
options.ConnectionString = configuration.Get("Data:IdentityConnection:ConnectionString");
options.UseSqlServer(options.ConnectionString);
}); });
services.SetupOptions<MusicStoreDbContextOptions>(options => services.SetupOptions<MusicStoreDbContextOptions>(options =>