質問: ASP.NET CoreおよびEF Coreシステムでは、システムのさまざまな部分に異なるデータベースを使用します。私は実行時にどのDBプロバイダが使用されているのかを知る必要があります。これは、これを考慮する必要があるためです。 起動時に、SQL Server用にこれがあります。 ``` services.AddDbContext( options => options.UseSqlServer(config.GetConnectionString("DefaultConnection")) ); ``` またはこれはSQLite用です: ``` services.AddDbContext( options => options.UseSqlite(config.GetConnectionString("DefaultConnection")) ); ``` *重要なのは、どのデータベースが使用されているかに関する知識がシステム内のどこかに含まれていることです。* システムの任意の時点で、どのデータベースを使用しているかをどのように判断できますか? `MyContext`アクセスできます。この情報を明らかにすることができるものがありますか?
回答: `MyContext`にアクセスできるシステムのどこでも、これを行う: ``` context.Database.GetDbConnection().GetType().Name ``` たとえば、SQLiteの場合は`SqliteConnection` 、SQL Serverの場合は`SqlServerConnection`などです。 **しかし、後で接続を処理する必要があるかどうかはわかりません!**