加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用EF Core在运行时确定正在使用哪个db提供程序

发布时间:2020-12-15 23:48:48 所属栏目:百科 来源:网络整理
导读:在我们的ASP.NET Core和EF Core系统中,我们对系统的不同部分使用不同的数据库.我需要能够在运行时告诉使用哪个数据库提供程序,因为有些东西需要考虑到这一点. 在启动期间,SQL Server有这样的: services.AddDbContextMyContext( options = options.UseSqlSer
在我们的ASP.NET Core和EF Core系统中,我们对系统的不同部分使用不同的数据库.我需要能够在运行时告诉使用哪个数据库提供程序,因为有些东西需要考虑到这一点.

在启动期间,SQL Server有这样的:

services.AddDbContext<MyContext>(
    options => options.UseSqlServer(config.GetConnectionString("DefaultConnection"))
  );

或者这适用于SQLite:

services.AddDbContext<MyContext>(
    options => options.UseSqlite(config.GetConnectionString("DefaultConnection"))
  );

关键是正在使用哪个数据库的知识,包含在系统内的某个地方.

在系统的某个任意点,我如何确定我正在使用哪个数据库?我可以访问MyContext.那里有什么可以揭示这些信息吗?

解决方法

在系统中可以访问MyContext的任何位置,执行以下操作:

context.Database.GetDbConnection().GetType().Name

例如,它是SQLite的SqliteConnection,或SQL Server的SqlServerConnection等.

但是我不确定你之后是否需要处理连接!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读