Entity Framework 7 ist kein Datenbankanbieter konfiguriert => wenn Migrationen in ein anderes Projekt verschoben werden
Ich bin neu bei EF7. Ich weiß, das ist eine doppelte Frage an:
Keine Datenbankanbieter sind konfiguriert EF7
Aber warten Sie, bevor Sie diese Frage geschlossen haben möchten ... und lesen Sie auf
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddScoped<TestRepository, TestRepository>();
Jetzt führe ich den Befehl dnx ef database update in den cmd-Fenstern in meinem EF-Projekt aus und erhalte den folgenden Fehler:
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.
Nun habe ich versucht, den Konstruktor meines @ zu ändeApplicationDbContext
entsprechend dem Lösungslink, den ich oben eingefügt habe:
Das ist mein Code:
Meine ApplicationDbContext.cs ist tatsächlich leer, was bedeutet, dass ich nichts überschrieben habe.
Betrachtet man die Basisklasse der Basisklasse, gibt es den überladenen Konstruktor mit dem 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 kaputt? Ich benutze EF 7 RC1 und DNX 451.
Dies geschieht nur, wenn Sie ApplicationDbContext / ApplicationUser und den gesamten Migrationsordner in ein zusätzliches "DataAccess" -Projekt verschieben. Dann scheint alles kaputt.