如何在控制台应用程序中设置默认连接字符串?

在我的带有Web界面的MVC项目中,我习惯在Web.Config文件中设置连接字符串。

但是,现在我正在创建一个bog标准控制台应用程序 – 也使用数据库挂钩,但是如何为应用程序全局设置连接字符串?

目前,我正在设定

var dbIndex = new DBContext(); dbIndex.Database.Connection.ConnectionString = "Data Source=USER-PC;Initial Catalog=TextProject.DBContext;" + "Integrated Security=True;MultipleActiveResultSets=True"; 

但是我必须在所有函数调用中每次都设置这个connectionstring属性。 当我没有web.config时,有没有办法设置全局连接字符串?

所以我认为你的意思是entity framework(我假设你正在使用它)寻找defaultConnection连接字符串。

您可以尝试按照其他人的建议将其放入app.config文件中,但我不确定这是否会由EF自动获取。

如果它不起作用,你可以做的是创建一个inheritanceDbContext新类 –

 public class MyDbContext : DbContext { public MyDbContext() : base() { var cs = ConfigurationManager.ConnectionStrings["defaultConnection"] .ConnectionString; this.Database.Connection.ConnectionString = cs; } } 

App.config相当于控制台或.exe程序的Web.config。

  • 在要使用app.config的ConnectionStrings的任何项目上添加对System.Configuration的引用
  • 将AppConfig添加到入口点项目。 这是执行的项目。 (例如console .exe)
  • 在app.config的部分添加连接字符串

现在将连接字符串放在app.config中

 string connStr =ConfigurationManager.ConnectionStrings["ConnName"] .ConnectionString; 

App.config中:

       

您可以将相同的元素放在控制台应用程序的App.config文件中,并以与Web.config相同的方式访问它。 相关: C#.NET中的App.config是什么? 如何使用它?

正如其他人所说,把你的连接字符串放在App.config文件中。

关于entity framework。 如果您使用的是Entity Framework(EF)版本6.2.0,那么EF可能会自动查找与从DbContextinheritance的类名相同的连接。

如果你的class级是

 public class MyDatabaseContext : DbContext { // other code } 

EF将查找一个名称为的连接字符串

您也可以在构造函数中设置名称

 public class MyDatabaseContext : DbContext { public MyDatabaseContext() : base ("name=defaultConnection") { // other code } // other code } 

在这种情况下,您的连接字符串名称可以是

解决方案非常简单易行。 只需右键单击并将项目设置为启动项目。 默认情况下,entity framework选择启动项目并使用App.config或web.config中的连接字符串

请参考:

在此处输入图像描述