动态设置app.config文件连接字符串

时间:2013-03-15 10:33:54

标签: asp.net-mvc web-config connection-string app-config

我有一个包含以下内容的Web应用程序:

  1. MVC Web项目(包含连接字符串的web.config文件 - 但其中没有数据库访问代码)

  2. 使用LINQ-SQL类的数据访问项目(它是一个类库,这个项目的dll将放入上面的MVC项目并访问其中的数据)。

  3. 我需要的是我的MVC项目的web.config文件中有一个连接字符串。我必须在类库中编写一个函数,以便app.config,settings.settings和dbml文件中的连接字符串应根据MVC webcofig文件中的连接字符串进行修改。并且应根据此连接从数据库中获取数据..

2 个答案:

答案 0 :(得分:4)

覆盖DataContext的构造函数,如下所示。

public partial class MyDataContext : System.Data.Linq.DataContext
{
    //This constructor make sure that the connection string is used from the web.config file.
    public MyDataContext()
        : base(ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString, mappingSource)
    {
        OnCreated();
    }
}

答案 1 :(得分:3)

您可以将类库中的DBML文件的连接字符串设置为“None”, 对于执行数据库操作的类库中的类,可以使用从其构造函数设置的连接字符串。

例如:

public class DBOperations
    {
        string conn;
        public DBOperations(string connectionString)
        {
            conn = connectionString;
        }

        //Use this connection string in Your functions
    }

此连接字符串可以从Web应用程序设置。它可以作为相应数据访问层类的构造函数传递。