データストアを登録していないStartup.csにDbContextOptionsを追加する

asp.net-core-mvc c# dependency-injection entity-framework entity-framework-core

質問

私の問題は、以下のコードが起動時にデータストアを登録しないということです。これは、アプリケーションから返された特定の「エラー」ステートメントです。

An unhandled exception occurred while processing the request.

InvalidOperationException: No data stores are configured. Configure a data store by overriding OnConfiguring in your DbContext class or in the AddDbContext method when setting up services.
    Microsoft.Data.Entity.Storage.DataStoreSelector.SelectDataStore(ServiceProviderSource providerSource)

ConfigureServices(IServiceCollectionサービス)では、ラムダでDbContextのDbContextOptionsを指定しようとしています。コード:

services.AddEntityFramework(Configuration)
    .AddSqlServer()
    .AddDbContext<MyDbContext>(
        options =>
        options.UseSqlServer(Configuration.Get("Data:DefaultConnection:ConnectionString"))
    );

私のDbContextでは、私はコードをベースにオプションを送信するコンストラクタを持っています:

public MyContext(DbContextOptions options) : base(options) { }

起動時に読み込まれる設定ファイルconfig.jsonには、次の接続文字列が含まれています。

"Data": {
    "DefaultConnection": {
        "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=MyDbName;Trusted_Connection=True;MultipleActiveResultSets=True;"
    }
}

私は以前に使った

protected override void OnConfiguring(DbContextOptions options)
{
    options.UseSqlServer(Startup.Configuration.Get("Data:DefaultConnection:ConnectionString"));

}

私のDbContextに正常に。それはデータストアを登録し、それは正常に動作しますが、私はむしろラムダの方法を使用したいと思います。

それ以上の情報が必要な場合は、それを提供します。

人気のある回答

コントローラにコンテキストを注入していますか、それを使用しているところはどこですか?私は、注入する代わりにコンテキストを新しくしようとすると、Startup.csで指定された構成を使用しないことを発見しました



Related

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