IdentityServer4 + EF Core
1. Install thease packages

2. Using migration by package manager console, and you will see 'Data\Migrations\IdentityServer' folder
Add-Migration InitConfiguration -Context ConfigurationDbContext -o Data\Migrations\IdentityServer\ConfiguragtionDb
Add-Migration InitConfiguration -Context PersistedGrantDbContext -o Data\Migrations\IdentityServer\PersistedGrantDb

3. Add extension method to initialize local data from config file, then use it in Configure(startup.cs)
public static class DatabaseConfigExtensions { /// <summary> /// initialize identityserver local config to database /// </summary> /// <param name="app"></param> public static void UseDatabaseInitialize(this IApplicationBuilder app) { using (var serviceScope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope()) { serviceScope.ServiceProvider.GetRequiredService<PersistedGrantDbContext>().Database.Migrate(); var context = serviceScope.ServiceProvider.GetRequiredService<ConfigurationDbContext>(); context.Database.Migrate(); if (!context.Clients.Any()) { foreach (var client in IdentityServerConfig.GetClients()) { context.Clients.Add(client.ToEntity()); } context.SaveChanges(); } if (!context.IdentityResources.Any()) { foreach (var resource in IdentityServerConfig.GetIdentityResources()) { context.IdentityResources.Add(resource.ToEntity()); } context.SaveChanges(); } if (!context.ApiScopes.Any()) { foreach (var resource in IdentityServerConfig.GetApiScopes()) { context.ApiScopes.Add(resource.ToEntity()); } context.SaveChanges(); } } } }
3. Run current project, some tables had exist and local data also initialzed

浙公网安备 33010602011771号