在datacontext上切换连接字符串

时间:2013-01-11 19:46:52

标签: asp.net vb.net linq-to-sql

我在 VS2010 上有 VB.NET 解决方案文件,格式如下

Code.Business (Business layer) .vb classes.
Code.Data (Data layer) LINQ to SQL .dbml files. 
Code.Web (UI layer) - ASPX pages.

我的数据层中有一个datacontext,并且有一个更改的默认构造函数

Public Sub New()
MyBase.New(ConfigurationManager.ConnectionStrings("MyConStr").ConnectionString, mappingSource)
OnCreated()

End Sub

现在,所有网页都使用此datacontext到业务层vb类。

我正在尝试切换到正确的数据库(Dev / Test / Prod)。我想使用上面的构造函数并为(“MyConStr”)传递正确的值,以便它可以指向正确的数据库。

我的 web.config 文件中包含所有三个值(Dev / Test / Prod)

Global.asax - Application_Start event 中,我正在读取web.config到应用程序变量的值。

 Dim strDBCon As String = ConfigurationManager.AppSettings(strServer & "_connstr")
 Application("ConString") = strDBCon

我尝试了应用程序("Constring",但似乎没有保留该值,我无法在datacontext的默认构造函数上切换值

有没有人有更好的解决方案呢?

1 个答案:

答案 0 :(得分:0)

我认为您可以为数据上下文添加partial class。请参阅此链接的Handling Multiple Result Shapes from SPROCs

LINQ to SQL (Part 6 - Retrieving Data Using Stored Procedures)

我认为您可以使用partial class编写自己的构造函数