我有一个包含以下内容的Web应用程序:
MVC Web项目(包含连接字符串的web.config文件 - 但其中没有数据库访问代码)
使用LINQ-SQL类的数据访问项目(它是一个类库,这个项目的dll将放入上面的MVC项目并访问其中的数据)。
我需要的是我的MVC项目的web.config文件中有一个连接字符串。我必须在类库中编写一个函数,以便app.config,settings.settings和dbml文件中的连接字符串应根据MVC webcofig文件中的连接字符串进行修改。并且应根据此连接从数据库中获取数据..
答案 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应用程序设置。它可以作为相应数据访问层类的构造函数传递。