2009-09-14 10 views
5

Używam LINQ do SQL, aby połączyć się z bazą danych z mojej aplikacji. Kiedy zmieniam środowisko z produkcji na etapowanie, mogę zaktualizować ciąg połączenia w web.config. Ale jest jeszcze jedna wartość, którą muszę zaktualizować po zmianie środowiska. To jest nazwa bazy danych. W LINQ to SQL projektanta pliku, nazwa bazy danych jest wymieniany jako atrybut jak-Ustaw nazwę bazy danych dynamicznie w LINQ na SQL

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

Jak mogę podnieść wartość Imienia dynamicznie od jakiegoś pliku konfiguracyjnego?

Każda pomoc jest naprawdę doceniana.

+1

Znalazłem usunięcie atrybutu bazy danych z pliku dbml.cs, nie podano żadnego błędu ani wyjątku. Ten atrybut nie jest więc obowiązkowy, ale jest dodawany domyślnie przez projektanta. –

+0

Czy możesz nie zaakceptować zaakceptowanej odpowiedzi? To już nie jest poprawne. –

Odpowiedz

0

Użyłem klasy otoki dostarczenie kontekstu wzdłuż linii

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

naprawiłem ten problem poprzez edycję pliku .dbml poza Visual Studio (projektant nie wydaje się, aby umożliwić dostęp do DatabaseAttribute) i pozbycie się własności nazwy tutaj:

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

(zauważ, że przyjęte rozwiązanie nie jest już poprawna: ten atrybut został przesłanianie moje ciąg połączenia)

Powiązane problemy