No database provider has been configured for this DbContext

I recently updated my project to the latest Entity Framework Core (+ VS2017). When I try to update the database, I get the following error message. The error message is clear, but it seems to be wrong. I have AddDbContext in my ConfigureServices (see code below).

What am I missing?

Error

> dotnet ef database update --verbose Finding DbContext classes... Using context 'ApplicationDbContext'. System.InvalidOperationException: No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider. If AddDbContext is used, then also ensure that your DbContext type accepts a DbContextOptions<TContext> object in its constructor and passes it to the base constructor for DbContext. 

Enter

 public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(this.Configuration.GetConnectionString("DefaultConnection"))); 

Csproj

 <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore"> <Version>1.1.0</Version> </PackageReference> <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore"> <Version>1.1.0</Version> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer"> <Version>1.1.0</Version> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design"> <Version>1.1.0</Version> <PrivateAssets>All</PrivateAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools"> <Version>1.0.0-msbuild1-final</Version> <PrivateAssets>All</PrivateAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.Design"> <Version>1.1.0</Version> </PackageReference> 
+5
source share
1 answer

You must remove the default constructor . In other words, the less constructor parameter. After that, everything will work as expected.

Note. . The reason for this is that when you start instead, public MyDbContext(DbContextOptions options) : base(options) {} constructor less less less is called.

+15
source

Source: https://habr.com/ru/post/1260151/


All Articles