【发布时间】:2023-03-19 23:15:01
【问题描述】:
在我们的 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。里面有什么东西可以泄露这些信息吗?
【问题讨论】:
-
在这里定义“动态”。动态如“每个应用程序启动”或动态如“可以在运行时随时更改”?
-
@Tseng 在运行时以编程方式确定。
-
两者都是运行时,这就是我问的原因。如果它是“每个应用程序启动”的事情,除了连接字符串之外,您只需将提供程序的类型添加到 appsettings.json。跨度>
-
@Tseng 这是一个有趣的选择...我可以将任何随机的东西放入连接字符串中吗?我应该使用什么格式?
标签: c# asp.net entity-framework asp.net-core entity-framework-core