LinqToSql dbml dynamisch wechseln connectionstring

Wir haben zwei Datenbanken, DEV und STAGING. Sie sind zum größten Teil identisch. Ich habe eine app-Einstellungen-tag in der Web.Config nennen es "mode", und zwei connectionstring-Einträge.

Wenn Modus=DEV möchte ich ConnectionString 1 anderweitig zu verwenden ConnectionString-2. Dies funktioniert gut in einigen teilen der app, aber die dbml scheint es nicht zu sein, schalten Sie die Verbindungszeichenfolgen.
Ich benutze diese Funktion in einem Utilities-Klasse

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

Diese Werke für die Vielzahl von gespeicherten Prozeduren in diesem legacy-app, aber die dbml, scheint immer die Staging-Verbindungszeichenfolge.

Wenn ich die Eigenschaften der dbml, sehe ich, dass es hart codiert, um die Staging-connectionstring, aber ich dachte, ich war overridding dies, indem Sie den designer.vb für die dbml wie diese

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

Gibt es irgendetwas, was ich tun kann, um die Kraft der dbml-mit den richtigen connectionstring basierend auf dem Web.config Eintrag?

InformationsquelleAutor Hcabnettek | 2009-07-10
Schreibe einen Kommentar