问题描述
您好,请提供帮助,我已经使用下面的PM命令从数据库中运行了一个脚手架,并且工作正常,并且创建了数据库上下文。
Scaffold-DbContext "Data Source=(localhost);Initial Catalog=tumoDB;User ID=tumo;password=****" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Infrastructure\Models -Tables BnplIndicator -f
但是当我尝试通过将连接字符串放在appsettings.json中来遵循.Net安全原则时,出现标题为找不到我的DB(tumoDB)名称的错误,请在下面查看我的连接字符串。
"ConnectionStrings": {
"MySql": {
"PhoneAppDB": {
"ConnString": "Server=(localhost)\Sql1;uid=tumo;pwd=****;Convert Zero Datetime=True;",// "ConnString": "Server=(localhost)\Sql2;port=3030;Database=MohemStores;user=root;password=***;","Timeout": 60000,"MaxRetries": 6
}
},"SqlServer": {
"tumoDB": {
"ConnString": "Data Source=(localhost);Initial Catalog=tumoDB;User ID=tumo;Password=***;","MaxRetries": 5
}
}
},...
现在我在下面使用它得到错误:在应用程序配置中找不到tumoDB
Scaffold-DbContext -Connection Name=tumoDB Microsoft.EntityFrameworkCore.SqlServer -OutputDir Infrastructure\Models -Tables BnplIndicator -force
我按照建议进行了研究,甚至在Startup.cs的Iconfiguration中添加了代码,但仍然出现相同的错误,请注意所有必需的软件包(EF.Sqlserver和EF.tools)均已正确安装,并且API运行时该命令使用出现问题的名称来折叠DBcontext。
services.AddCustomDataStoreConfiguration(Configuration);
services.AddDbContext<tumoDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("tumoDB")));
解决方法
我实际上找到了答案,不能在另一个连接字符串下创建子连接字符串。
解决方案:
"ConnectionStrings": {
"PhoneAppDB":"Server=(localhost)\Sql1;uid=tumo;pwd=****;Convert Zero Datetime=True;","tumoDB":
"ConnString": "Data Source=(localhost);Initial Catalog=tumoDB;User ID=tumo;Password=***;"
},