gro*_*kky 5 c# asp.net entity-framework entity-framework-core asp.net-core
在我们的ASP.NET Core和EF Core系统中,我们对系统的不同部分使用不同的数据库.我需要能够在运行时告诉使用哪个数据库提供程序,因为有些东西需要考虑到这一点.
在启动期间,SQL Server有这样的:
services.AddDbContext<MyContext>(
options => options.UseSqlServer(config.GetConnectionString("DefaultConnection"))
);
Run Code Online (Sandbox Code Playgroud)
或者这适用于SQLite:
services.AddDbContext<MyContext>(
options => options.UseSqlite(config.GetConnectionString("DefaultConnection"))
);
Run Code Online (Sandbox Code Playgroud)
关键是正在使用哪个数据库的知识,包含在系统内的某个地方.
在系统的某个任意点,我如何确定我正在使用哪个数据库?我可以访问MyContext.那里有什么可以揭示这些信息吗?
我在我的项目中使用2数据库提供程序。
可以从Nuget程序包管理器中添加客户项目中包含的引用。
这些参考包含以下扩展方法。
Boolean isPostgreSQL = context.Database.IsNpgsql();
Boolean isSqlServer = context.Database.IsSqlServer();
Run Code Online (Sandbox Code Playgroud)
在您可以访问的系统中的任何位置MyContext执行此操作:
context.Database.GetDbConnection().GetType().Name
Run Code Online (Sandbox Code Playgroud)
例如,它适用SqliteConnection于SQLite或SqlServerConnectionSQL Server等.
但是我不确定你之后是否需要处理连接!
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |