2009-09-14 5 views
5

Ich verwende LINQ to SQL, um eine Verbindung zur Datenbank über meine Anwendung herzustellen. Wenn ich die Umgebung von Produktion zu Staging ändere, kann ich meine Verbindungszeichenfolge in web.config aktualisieren. Aber es gibt einen weiteren Wert, den ich aktualisieren muss, wenn sich die Umgebung ändert. Das ist der Datenbankname. In LINQ to SQL Designer-Datei wird die Datenbanknamen als Attribut erwähnt wie-Den Datenbanknamen dynamisch in LINQ to SQL festlegen

[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")] 

Wie kann ich Wert von Namen holt dynamisch aus einiger Konfigurationsdatei?

Jede Hilfe wird wirklich geschätzt.

+1

Ich habe das Entfernen des Datenbankattributs aus der Datei dbml.cs gefunden, keinen Fehler oder Ausnahmefehler angegeben. Dieses Attribut ist also nicht obligatorisch, sondern wird standardmäßig vom Designer hinzugefügt. –

+0

Können Sie die akzeptierte Antwort nicht annehmen? Es ist nicht mehr korrekt. –

Antwort

0

ich eine Wrapper-Klasse verwendet habe, nach dem Vorbild der

public DataContext Context = new DataContext(SqlConnectionString); //much simplified 
0

ich dieses Problem, einen Kontext zu schaffen, durch die Bearbeitung der .dbml Datei außerhalb von Visual Studio festgelegt (der Designer scheint nicht den Zugang zu ermöglichen, hier los zum DatabaseAttribute) und des Namens Eigenschaft bekommen:

<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007"> 

(beachten Sie, dass die akzeptierte Antwort nicht mehr korrekt ist: dieses Attribut überschreibt meine Verbindungszeichenfolge)