質問: 次のコードでは、 `DbContextOptions`後に`ApplicationDbContext`に対処する理由がわかりません ``` namespace SportsStore.Models { public class ApplicationDbContext : DbContext { public ApplicationDbContext(DbContextOptionsoptions) : base(options) { } public DbSet Products { get; set; } } } ``` 基本クラス構築の定義は次のとおりです。 ``` public DbContext([NotNullAttribute] DbContextOptions options); ``` 上記のコード内の**ApplicationDbContext**は属性ですか?それはジェネリック型なのですが、ここでジェネリック型を使うべきですか?それは公式のドキュメンテーションで建設を実装することになるとそれが言及されるので、 > DbContextで使用されるオプション。通常、DbContext.OnConfiguring(DbContextOptionBuilder)をオーバーライドするか、DbContextOptionBuilderを使用してこのクラスのインスタンスを作成します。 > > 公式のMicrosoftのドキュメントに従って派生クラスの構築を構成したい場合は、どうやって進めるべきですか?
回答: これは、Dependency Injectionを使用してコンテキストをインスタンス化する、つまり`AddDbContext`拡張メソッドを使用できるようにするためです。 `OnConfiguring` 、 `IsConfigured`プロパティがコンストラクタ( `options`パラメータ)を介してコンテキストが設定されているかどうかを確認でき`options` 。 `DbContextOptions`は`DbContextOptions`を拡張するだけで、新しいものはありませんが、この方法で特定の`DbContext`結び付けられていることが`DbContext`ます。 https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontext.onconfiguring?view=efcore-2.0を参照してください 。