【问题标题】:Set app.config file connection string dynamically动态设置 app.config 文件连接字符串
【发布时间】:2013-03-16 12:56:05
【问题描述】:
我有一个包含以下内容的网络应用程序:
一个 MVC Web 项目(带有一个包含连接字符串的 web.config 文件 - 但其中没有数据库访问代码)
一个使用LINQ-SQL类的数据访问项目(是一个类库,这个项目的dll会放到上面的MVC项目里面访问数据)。
我需要的是我的 MVC 项目的 web.config 文件中有一个连接字符串。我必须在类库中编写一个函数,以便根据 MVC webcofig 文件中的连接字符串修改 app.config、settings.settings 和 dbml 文件中的连接字符串。并且数据应该根据这个连接从数据库中获取..
【问题讨论】:
标签:
asp.net-mvc
web-config
connection-string
app-config
【解决方案1】:
如下所示覆盖 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();
}
}
【解决方案2】:
您可以将类库中 DBML 文件的连接字符串设置为“无”,
对于执行 DB 操作的类库中的类,可以使用从它的构造函数设置的连接字符串。
例如:
public class DBOperations
{
string conn;
public DBOperations(string connectionString)
{
conn = connectionString;
}
//Use this connection string in Your functions
}
这个连接字符串可以从web应用程序中设置,可以作为对应数据访问层类的构造函数传递。