Asp.net
Linq to Sql - 根據環境變數動態設置連接字元串
我需要根據環境變數為 Linq to 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 事件並手動創建數據上下文對象。