Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core .NET核心控制台应用程序,连接字符串存储在哪里_Asp.net Core_.net Core_Entity Framework Core_Console Application - Fatal编程技术网

Asp.net core .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数据库中的所有表。但我有以下问题- 在我的

在VisualStudio2019中,我创建了一个.NET核心控制台应用程序。然后我使用下面的命令映射现有数据库-

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方法。我认为你无法避免。