2014-07-18 39 views
5

在我使用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

所以我认为你说的是​​Entity Framework(我假设你正在使用的是)寻找defaultConnection con nection字符串。

您可以尝试将其放在app.config文件中,正如其他人所建议的,但我不确定这是否会由EF自动提取。

你可以做什么,如果它不能正常工作,是创建新类继承DbContext -

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

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

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

  • 上要使用ConnectionStrings在app.config
  • 的添加的AppConfig您切入点项目中的任何项目添加到System.Configuration参考。这是执行的项目。 (如控制台.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> 
-1

的解决方案是非常简单和容易。只需右键单击并将项目设置为启动项目。默认情况下,实体框架会启动项目和使用的App.config内部的连接字符串或web.config中

请参阅本:

enter image description here

相关问题