我正在开发一个小项目,并且要求必须允许用户在sqlserver和postgresql或更多之间切换数据库。
我认为,我需要一个参数来将json配置文件中的数据库切换为:
“ DatabaseType”:“ MsSQL”
我的问题是我如何使用实体框架核心来实现?
我如何使用DbContext并切换它们?
对不起,如果我的英语不好。
答案 0 :(得分:0)
要使用相同的DbContext切换数据库,您需要确保数据库映射了DbContext Structor。
为此,您可以尝试定义
之类的参数。{
"DatabaseType": "MsSQL1",
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-TestIdentity2_2-C9C6DF1A-1A9A-497A-871E-618806FC959F;Trusted_Connection=True;MultipleActiveResultSets=true",
"MySqlConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MySql-2C4FD13B-62DA-4B5D-8C8C-8F9C42CD3A67;Trusted_Connection=True;MultipleActiveResultSets=true"
},
}
在Startup.cs
中配置
services.AddDbContext<ApplicationDbContext>(options =>
{
var dbType = Configuration["DatabaseType"];
if (dbType == "MsSQL")
{
//change this to your postgresql config
options.UseSqlServer(
Configuration.GetConnectionString("MySqlConnection"));
}
else
{
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection"));
}
});