From 222dd671756bfffaec2fb5c493f8e39f2f5862d4 Mon Sep 17 00:00:00 2001 From: John Luo Date: Tue, 1 Sep 2020 07:26:33 -0700 Subject: [PATCH] Fix Unhandled DBErrors in ComponentsWebAssembly and Spa templates (#25466) * Add workaround for EF issue dotnet/efcore#22341 --- .../src/DatabaseDeveloperPageExceptionFilter.cs | 3 ++- .../content/ComponentsWebAssembly-CSharp/Server/Startup.cs | 2 +- .../Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs | 2 +- .../Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Middleware/Diagnostics.EntityFrameworkCore/src/DatabaseDeveloperPageExceptionFilter.cs b/src/Middleware/Diagnostics.EntityFrameworkCore/src/DatabaseDeveloperPageExceptionFilter.cs index 3ba74bc18f..447124077e 100644 --- a/src/Middleware/Diagnostics.EntityFrameworkCore/src/DatabaseDeveloperPageExceptionFilter.cs +++ b/src/Middleware/Diagnostics.EntityFrameworkCore/src/DatabaseDeveloperPageExceptionFilter.cs @@ -38,7 +38,8 @@ namespace Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore { // Look for DbContext classes registered in the service provider var registeredContexts = errorContext.HttpContext.RequestServices.GetServices() - .Select(o => o.ContextType); + .Select(o => o.ContextType) + .Distinct(); // Workaround for https://github.com/dotnet/efcore/issues/22341 if (registeredContexts.Any()) { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs index 3ebd062721..52df8d06aa 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs @@ -49,9 +49,9 @@ namespace ComponentsWebAssembly_CSharp.Server #else options.UseSqlite( Configuration.GetConnectionString("DefaultConnection"))); +#endif services.AddDatabaseDeveloperPageExceptionFilter(); -#endif services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores(); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs index ba27271667..73e8a87af1 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs @@ -42,9 +42,9 @@ namespace Company.WebApplication1 #else options.UseSqlite( Configuration.GetConnectionString("DefaultConnection"))); +#endif services.AddDatabaseDeveloperPageExceptionFilter(); -#endif services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores(); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs index 1c58bdd186..378ce7bcee 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs @@ -42,9 +42,9 @@ namespace Company.WebApplication1 #else options.UseSqlite( Configuration.GetConnectionString("DefaultConnection"))); +#endif services.AddDatabaseDeveloperPageExceptionFilter(); -#endif services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true) .AddEntityFrameworkStores();