Asp.net core .NET核心控制台应用程序,连接字符串存储在哪里
在VisualStudio2019中,我创建了一个.NET核心控制台应用程序。然后我使用下面的命令映射现有数据库-Asp.net core .NET核心控制台应用程序,连接字符串存储在哪里,asp.net-core,.net-core,entity-framework-core,console-application,Asp.net Core,.net Core,Entity Framework Core,Console Application,在VisualStudio2019中,我创建了一个.NET核心控制台应用程序。然后我使用下面的命令映射现有数据库- PM> Scaffold-DbContext "Server=.\MSSQL;Database=SchoolDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 上面的命令映射了SchoolDB数据库中的所有表。但我有以下问题- 在我的
PM> Scaffold-DbContext "Server=.\MSSQL;Database=SchoolDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
上面的命令映射了SchoolDB数据库中的所有表。但我有以下问题-
在我的asp.net核心web应用程序中,连接字符串保存在哪里?因此,当我将控制台应用程序从测试环境移动到实时环境时,我可以更改它。
下面是我的控制台应用程序在运行上述命令后的样子,在这里我找不到任何配置文件来存储连接字符串-
Scaffold DbContext命令应在名为SchoolDBContext.cs的文件中创建一个类SchoolDBContext,并将其放置在命令中使用-OutputDir参数指定的目录中。此类有一个OnConfigurang方法,其中连接字符串定义为-
配置DBContextOptionsBuilder optionsBuilder时受保护的覆盖无效
{
if!options builder.IsConfigured
{
optionsBuilder.UseSqlServeryour\u连接\u字符串;
}
}
如果希望将SchoolDBContext放在单独的目录中,可以使用命令中的-ContextDir参数来指定它,如-
Scaffold-DbContext "your_connection_string" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -ContextDir DbContext
编辑:
如果要将连接字符串放入配置文件-
在项目的根目录下添加一个.json文件,例如appconfig.json,并在其中添加以下内容-
{
连接字符串:{
myDbConn:您的\u连接\u字符串
}
}
在解决方案资源管理器中,右键单击appconfig.json文件并选择属性。将“复制到输出目录”的值设置为“始终复制”。
安装Microsoft.Extensions.Configuration.Json包
将onconfig方法修改为-
配置DBContextOptionsBuilder optionsBuilder时受保护的覆盖无效
{
var config=new ConfigurationBuilder
.AddJsonFileappconfig.json,可选:false.Build;
if!options builder.IsConfigured
{
optionsBuilder.UseSqlServerconfig.GetConnectionStringmyDbConn;
}
}
引用您可能必须自己添加它。@Nkosi但是应用程序是如何从中获取数据的?如果我没有连接字符串?运行时控制台应用程序获取数据?请检查dbcontext代码。它很可能是硬编码到类的OnConfiguring方法中的。是的,您是正确的。连接字符串位于OnConfiguring方法中。。但是,由于连接字符串是一种在移动应用程序时会更改的配置,因此我可以将其放在web.config中。。。。我不确定,但我的.net core console应用程序没有web.config..@johnGu请检查编辑。好的,谢谢您的回复。。你的方法对我有用。。但唯一的问题是,如果我重新生成数据库,那么onconfigurang方法内部的修改将丢失。。我需要重新修改onconfig方法。。那么有没有办法解决这个问题?@johnGu重新运行该命令将重新生成DbContext类和onconfig方法。我认为你无法避免。