asp.net - Linq to Sql-根据环境变量动态设置连接字符串

标签 asp.net linq linq-to-sql connection-string

我需要基于环境变量将Linq的连接字符串设置为Sql。我有一个函数,它将根据环境变量从web.config返回连接字符串,但是如何使Linq始终使用此“动态创建的”连接字符串(最好不必每次都指定它)?

我知道我可以使用构造函数指定连接字符串,但是在LinqDataSource中使用datacontext时如何工作?

最佳答案

用:

MyDataClassesDataContext db = new MyDataClassesDataContext(dynamicConnString);


对于LinqDataSource,请拦截ContextCreating事件并如上所述手动创建DataContext:

protected void LinqDataSource_ContextCreating(object sender, LinqDataSourceContextEventArgs e)
{
    e.ObjectInstance = new MyDataClassesDataContext (dynamicConnString);
}


MSDN


默认情况下,LinqDataSource控件
创建一个类型的实例
在ContextTypeName中指定
属性。 LinqDataSource控件
调用的默认构造函数
数据上下文对象创建一个
对象的实例。有可能的
您必须使用非默认值
构造函数,否则您必须创建一个
与那个不同的物体
在ContextTypeName中指定
属性。在这种情况下,您必须
处理ContextCreating事件并
手动创建数据上下文
目的。

关于asp.net - Linq to Sql-根据环境变量动态设置连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1188962/

相关文章:

asp.net - 元素 'X' 不是已知元素 - Web 应用程序

c# - 模态弹出窗口中的客户端验证?

c# - ASP .NET - 从选定的 Listview 控件行检索值?

c# - 为列表 c# 中的特定索引应用 lambda 表达式

c# - Dynamic Linq - 连接具有一对多关系的表

c# - LINQ to XML - 如何正确使用 XDocument

linq-to-sql - 通过在 Task.Run() 中包装 linq 查询,在多线程中进行 linq to sql

asp.net - 在 Linq-to-SQL 中使用 WHERE 子句时出错

c# - Linq 到 SQL : Why am I getting IDENTITY_INSERT errors?

.net - Html.RenderAction 是否已进入 VS2010/ASP.NET 4?