我们有两个数据库,DEV和STAGING。它们在大部分情况下是相同的。我在Web.Config中有一个app settings标签,叫做"mode",以及两个连接字符串条目。
如果mode=DEV,则要使用ConnectionString 1,否则使用ConnectionString 2。这在应用程序的某些部分中可以正常工作,但dbml似乎没有切换连接字符串。 我正在一个Utilities类中使用此功能。
这适用于这个遗留应用程序中无数的存储过程,但是dbml似乎总是使用Staging连接字符串。当我查看dbml的属性时,我发现它被硬编码为Staging连接字符串,但是我认为通过更改dbml的designer.vb来覆盖它。
有什么方法可以强制dbml使用基于Web.config条目的正确连接字符串吗?
如果mode=DEV,则要使用ConnectionString 1,否则使用ConnectionString 2。这在应用程序的某些部分中可以正常工作,但dbml似乎没有切换连接字符串。 我正在一个Utilities类中使用此功能。
Public Function GetConnectionString() As String
Dim connectionStringToGet = String.Empty
Select Case GetCurrentApplicationMode()
Case "DEV"
connectionStringToGet = "Dev"
Case "STAG"
connectionStringToGet = "Staging"
Case "PROD"
connectionStringToGet = "Production"
End Select
Return ConfigurationManager.ConnectionStrings(connectionStringToGet).ConnectionString
End Function
这适用于这个遗留应用程序中无数的存储过程,但是dbml似乎总是使用Staging连接字符串。当我查看dbml的属性时,我发现它被硬编码为Staging连接字符串,但是我认为通过更改dbml的designer.vb来覆盖它。
Public Sub New()
MyBase.New(Utilities.GetConnectionString(), mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As String)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As System.Data.IDbConnection)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As String, ByVal mappingSource As System.Data.Linq.Mapping.MappingSource)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
Public Sub New(ByVal connection As System.Data.IDbConnection, ByVal mappingSource As System.Data.Linq.Mapping.MappingSource)
MyBase.New(connection, mappingSource)
OnCreated
End Sub
有什么方法可以强制dbml使用基于Web.config条目的正确连接字符串吗?