このDbContextに対してデータベースプロバイダがコンフィグレーションされていません

entity-framework entity-framework-core

質問

私は最近、私のプロジェクトをEntity Framework Core(+ VS2017)の最新バージョンに更新しました。 DBを更新しようとすると、次のエラーメッセージが表示されます。エラーメッセージはクリアされていますが、間違っているようです。 ConfigureServicesにAddDbContextがあります(下記のコードを参照)。

私は何が欠けていますか?

エラー

> 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.

起動

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>

受け入れられた回答

あなたはデフォルトのコンストラクタ削除する必要があります 。言い換えれば、パラメータlessコンストラクタですその後 、すべてが期待どおりに動作します。

注:その理由は、このpublic MyDbContext(DbContextOptions options) : base(options) {}ではなく、実行時にパラメータの少ないコンストラクタが呼び出されているためですpublic MyDbContext(DbContextOptions options) : base(options) {}



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ