Ich bin neu in EF7. Ich weiß, das ist eine doppelte Frage:Entity Framework 7 kein Datenbankprovider konfiguriert => wenn Migrationen in ein anderes Projekt verschoben werden
No database providers are configured EF7
Aber warten, bevor Sie diese Frage haben wollen geschlossen ... und lesen Sie weiter
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddScoped<TestRepository, TestRepository>();
Jetzt habe ich die dnx ef Datenbank-Update-Befehl ausführen auf dem cmd Fenster in meinem EF Projekt und diese Fehlermeldung erhalten:
C:\TGB.DataAccess>dnx ef database update
System.InvalidOperationException: No database providers are configured. Configure a database provider by overriding OnConfiguring in your DbContext class or in the AddDbContext method when setting up services.
bei Microsoft.Data.Entity.Internal.DatabaseProviderSelector.SelectServices(ServiceProviderSource providerSource)
bei Microsoft.Data.Entity.Internal.DbContextServices.<>c__DisplayClass6_0.<Initialize>b__0()
bei Microsoft.Data.Entity.Internal.LazyRef`1.get_Value()
bei Microsoft.Data.Entity.Internal.DbContextServices.get_DatabaseProviderServices()
bei Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.<>c.<AddEntityFramework>b__0_8(IServiceProvider p)
bei Microsoft.Extensions.DependencyInjection.ServiceLookup.FactoryService.Invoke(ServiceProvider provider)
bei Microsoft.Extensions.DependencyInjection.ServiceProvider.ScopedCallSite.Invoke(ServiceProvider provider)
bei Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass12_0.<RealizeService>b__0(ServiceProvider provider)
bei Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
bei Microsoft.Extensions.DependencyInjection.ServiceProviderExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
bei Microsoft.Extensions.DependencyInjection.ServiceProviderExtensions.GetRequiredService[T](IServiceProvider provider)
bei Microsoft.Data.Entity.Design.Internal.DesignTimeServicesBuilder.Build(DbContext context)
bei Microsoft.Data.Entity.Design.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
bei Microsoft.Data.Entity.Commands.Program.Executor.<>c__DisplayClass7_0.<UpdateDatabase>b__0()
bei Microsoft.Data.Entity.Commands.Program.Executor.Execute(Action action)
No database providers are configured. Configure a database provider by overriding OnConfiguring in your DbContext class or in the AddDbContext method when setting up services.
Jetzt habe ich versucht, den Konstruktor meines ApplicationDbContext
nach t zu ändern o die Lösung Link, den ich an der Spitze eingefügt:
Das ist mein Code:
Mein ApplicationDbContext.cs ist eigentlich leer, das bedeutet nichts, was ich außer Kraft gesetzt haben.
Mit Blick auf die Basisklasse der Basisklasse gibt es den überladenen Konstruktor mit Parameter DbContextOptions, aber ich kann nichts von meinem Konstruktor übergeben ?!
//
// Summary:
// Initializes a new instance of Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext.
//
// Parameters:
// options:
// The options to be used by a Microsoft.Data.Entity.DbContext.
public IdentityDbContext(DbContextOptions options);
Was ist auf meiner Seite gebrochen? Ich verwende EF 7 RC1 und DNX 451.
Dies geschieht nur, wenn Sie den ApplicationDbContext/ApplicationUser und den gesamten Migrationsordner in ein zusätzliches Projekt namens "DataAccess" verschieben. Dann scheint alles kaputt zu sein.
Haben Sie versucht, den Kontext anzugeben, zB 'dnx database update -c ApplicationDbContext'? – DavidG
Sie können auch das Projekt angeben '-p' –
DavidG
Ich bin direkt im DataAccess-Projekt über CMD und ich führe dnx ef Datenbankaktualisierung -c ApplicationDbContext => Der gleiche Fehler wie zuvor! – Pascal