From 6f8407bca4e5610b7eb63042044bc83b98d533fe Mon Sep 17 00:00:00 2001 From: ajcvickers Date: Fri, 21 Nov 2014 10:39:50 -0800 Subject: [PATCH] Reacting to EF change --- .../DatabaseErrorPageMiddleware.cs | 12 ++++++++---- .../DatabaseErrorPageMiddlewareTest.cs | 5 ++++- .../MigrationsEndPointMiddlewareTest.cs | 7 +++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Microsoft.AspNet.Diagnostics.Entity/DatabaseErrorPageMiddleware.cs b/src/Microsoft.AspNet.Diagnostics.Entity/DatabaseErrorPageMiddleware.cs index 9eebcdd04e..5ce05077a8 100644 --- a/src/Microsoft.AspNet.Diagnostics.Entity/DatabaseErrorPageMiddleware.cs +++ b/src/Microsoft.AspNet.Diagnostics.Entity/DatabaseErrorPageMiddleware.cs @@ -8,10 +8,12 @@ using Microsoft.AspNet.Diagnostics.Entity.Views; using Microsoft.AspNet.Http; using Microsoft.AspNet.RequestContainer; using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; using Microsoft.Data.Entity.Migrations; using Microsoft.Data.Entity.Migrations.Infrastructure; using Microsoft.Data.Entity.Migrations.Utilities; using Microsoft.Data.Entity.Relational; +using Microsoft.Data.Entity.Utilities; using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.Logging; using System; @@ -81,15 +83,17 @@ namespace Microsoft.AspNet.Diagnostics.Entity { var databaseExists = dbContext.Database.AsRelational().Exists(); - var services = (MigrationsDataStoreServices)dbContext.Configuration.DataStoreServices; + var contextServices = ((IDbContextServices)dbContext).ScopedServiceProvider; + var services = (MigrationsDataStoreServices)contextServices.GetRequiredService().DataStoreServices; + var migrator = services.Migrator; - var pendingMigrations = services.Migrator.GetPendingMigrations().Select(m => m.GetMigrationId()); + var pendingMigrations = migrator.GetPendingMigrations().Select(m => m.GetMigrationId()); var pendingModelChanges = true; - var snapshot = services.Migrator.MigrationAssembly.Model; + var snapshot = migrator.MigrationAssembly.Model; if (snapshot != null) { - pendingModelChanges = services.Migrator.ModelDiffer.Diff(snapshot, dbContext.Model).Any(); + pendingModelChanges = migrator.ModelDiffer.Diff(snapshot, dbContext.Model).Any(); } if ((!databaseExists && pendingMigrations.Any()) || pendingMigrations.Any() || pendingModelChanges) diff --git a/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/DatabaseErrorPageMiddlewareTest.cs b/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/DatabaseErrorPageMiddlewareTest.cs index cbd419e705..2a776fec7c 100644 --- a/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/DatabaseErrorPageMiddlewareTest.cs +++ b/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/DatabaseErrorPageMiddlewareTest.cs @@ -13,7 +13,9 @@ using Microsoft.AspNet.Diagnostics.Entity.FunctionalTests.Helpers; using Microsoft.AspNet.Http; using Microsoft.AspNet.TestHost; using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; using Microsoft.Data.Entity.Migrations.Infrastructure; +using Microsoft.Data.Entity.Utilities; using Microsoft.Framework.DependencyInjection; using Microsoft.Framework.Logging; using Xunit; @@ -157,7 +159,8 @@ namespace Microsoft.AspNet.Diagnostics.Entity.Tests { using (var db = context.ApplicationServices.GetService()) { - var services = (MigrationsDataStoreServices)db.Configuration.DataStoreServices; + var contextServices = ((IDbContextServices)db).ScopedServiceProvider; + var services = (MigrationsDataStoreServices)contextServices.GetRequiredService().DataStoreServices; services.Migrator.ApplyMigrations(); db.Blogs.Add(new Blog()); diff --git a/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/MigrationsEndPointMiddlewareTest.cs b/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/MigrationsEndPointMiddlewareTest.cs index 9a60189923..39124721bd 100644 --- a/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/MigrationsEndPointMiddlewareTest.cs +++ b/test/Microsoft.AspNet.Diagnostics.Entity.FunctionalTests/MigrationsEndPointMiddlewareTest.cs @@ -11,8 +11,10 @@ using Microsoft.AspNet.Builder; using Microsoft.AspNet.Http; using Microsoft.AspNet.TestHost; using Microsoft.Data.Entity; +using Microsoft.Data.Entity.Infrastructure; using Microsoft.Data.Entity.Migrations.Infrastructure; using Microsoft.Data.Entity.Migrations.Utilities; +using Microsoft.Data.Entity.Utilities; using Microsoft.Framework.DependencyInjection; using Xunit; using Microsoft.AspNet.Diagnostics.Entity.Tests.Helpers; @@ -99,8 +101,9 @@ namespace Microsoft.AspNet.Diagnostics.Entity.Tests Assert.Equal(HttpStatusCode.NoContent, response.StatusCode); Assert.True(db.Database.AsRelational().Exists()); - var services = (MigrationsDataStoreServices)db.Configuration.DataStoreServices; - var appliedMigrations = services.Migrator.GetDatabaseMigrations(); + var contextServices = ((IDbContextServices)db).ScopedServiceProvider; + var dataStoreServices = (MigrationsDataStoreServices)contextServices.GetRequiredService().DataStoreServices; + var appliedMigrations = dataStoreServices.Migrator.GetDatabaseMigrations(); Assert.Equal(2, appliedMigrations.Count); Assert.Equal("111111111111111_MigrationOne", appliedMigrations.ElementAt(0).GetMigrationId()); Assert.Equal("222222222222222_MigrationTwo", appliedMigrations.ElementAt(1).GetMigrationId());