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

时间:2014-07-18 15:01:31

标签: c# entity-framework

在我的带有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时,有没有办法设置全局连接字符串?

5 个答案:

答案 0 :(得分:5)

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

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

如果不起作用,你可以做的是创建一个继承DbContext的新类 -

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

        this.Database.Connection.ConnectionString = cs;                
    }
}

答案 1 :(得分:3)

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

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

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

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

App.config中:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="ConnName" connectionString="Data Source=USER-PC;Initial Catalog=TextProject.DBContext;Integrated Security=True;MultipleActiveResultSets=True" />
 </connectionStrings>
</configuration> 

答案 2 :(得分:0)

您可以将相同的元素放在控制台应用程序的App.config文件中,并以与Web.config相同的方式访问它。 相关:What is App.config in C#.NET? How to use it?

答案 3 :(得分:0)

正如其他人所说,将您的连接字符串放入App.config文件中。

关于实体框架。如果您使用的是Entity Framework(EF)版本6.2.0,则可能是更早的EF会自动查找与从DbContext继承的类同名的连接。

如果你的班级是

public class MyDatabaseContext : DbContext 
{
    // other code
}

EF将寻找一个名称如下的连接字符串 <add name="MyDatabaseContext" ...

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

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

  // other code
}

在这种情况下,您的连接字符串名称可以为<add name="defaultConnection" ...

答案 4 :(得分:-1)

解决方案非常简单易行。只需右键单击并将项目设置为启动项目。默认情况下,实体框架选择启动项目并使用App.config或web.config

中的连接字符串

请参阅:

enter image description here