网站没有从web.config获取连接字符串。它正在搜索app.config

时间:2013-08-28 09:29:56

标签: c# asp.net f#

我的项目有3层结构DataAccessLayer,BusinessLogicLayer和Website。

在我的DataAccessLayer中,我使用F#库项目,从app.config文件访问connectionstring

F#代码 -

type dbSchema = SqlDataConnection<"","MyConnection">

let connectionString = System.Configuration.ConfigurationManager.ConnectionStrings.               ["MyConnection"].ConnectionString 

App.config代码 -

  <connectionStrings>
      <add name="MyConnection" connectionString="Data Source=MyServer;Initial   Catalog=MyDB;Persist Security Info=True;User ID=sa;Password=xyz;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

现在我在网站BusinessLogic和网站项目中提供了这个dll的参考。

我正在调用BusinessLogicLayer的函数来获取数据 -

var MyDataList = BusinessLogic.GetAllData()。ToList();

现在的问题是,该网站正在app.config文件而不是web.config中搜索connectionstring。我希望它从web.config

获取connectionstring

3 个答案:

答案 0 :(得分:1)

您可以拥有Web项目的web.config或应用程序的app.config。

作为替代方案,您可以加载自定义配置文件,另请参阅http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspx

答案 1 :(得分:0)

您可以使用以下代码行获取连接字符串 -

using System;
using System.Configuration;

var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

这是一个参考: Connection String from App.config

答案 2 :(得分:0)

这是一个老问题,但在搜索之前它仍然出现: F# Type Provider for SQL in a class

在F#Data Access中,添加如下函数

let getDbContext connString = 
    match connString with
    | "" -> Sql.GetDataContext()
    | _ -> Sql.GetDataContext(connString)

然后在C#代码中,您可以调用getDbContext并在运行时从 web.config 传递连接字符串。

请注意,F#数据访问层仍然需要以提供连接字符串,以便编译器完成它的工作。