1

我有 3 层结构 DataAccessLayer、BusinessLogicLayer 和网站的项目。

在我的 DataAccessLayer 中,我使用了 F# 库项目和从 app.config 文件访问的连接字符串

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 中搜索连接字符串。我希望它从 web.config 中获取连接字符串

4

3 回答 3

1

您可以为 Web 项目使用 web.config,也可以为应用程序使用 app.config。

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

于 2013-08-28T09:36:17.167 回答
0

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

using System;
using System.Configuration;

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

这是一个参考: 来自 App.config 的连接字符串

于 2013-10-17T08:41:02.377 回答
0

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

在您的 F# 数据访问中,添加这样的函数

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

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

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

于 2015-01-02T22:00:00.927 回答