У меня есть DAL, который принимает строку подключения в качестве параметра при ее создании. Слой, использующий DAL, отвечает за его получение. Таким образом, DAL не меняется, если он находится в Windows или веб-приложении. Мой DAL также создается только один раз для каждого приложения с использованием шаблона синглтона, поэтому накладные расходы на получение строки подключения оплачиваются только один раз.
public sealed class cApp
{
static readonly cDB _cDB = new cDB(
ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString);
public static cDB DB
{
get
{
return _cDB;
}
}
}
Тогда в коде я могу использовать его как:
GridView1.DataSource = cApp.DB.GetStages(id);
GridView1.DataBind();