protected override async Task CreateAndSeedDatabase(IServiceProvider serviceProvider, string databaseName)
 {
     using (var context = new MonsterContext(serviceProvider, CreateOptions(databaseName)))
     {
         context.Database.EnsureDeleted();
         context.Database.EnsureCreated();
         context.SeedUsingFKs();
     }
 }
        protected override async Task CreateAndSeedDatabase(IServiceProvider serviceProvider, string databaseName)
        {
            using (await _creationLock.LockAsync())
            {
                if (!_databaseCreated)
                {
                    using (var context = new MonsterContext(serviceProvider, CreateOptions(databaseName)))
                    {
                        context.Database.EnsureDeleted();
                        context.Database.EnsureCreated();
                        context.SeedUsingFKs();
                    }

                    _databaseCreated = true;
                }
            }
        }