DataContext w wielu bazach danych

Mam aplikację, która musi połączyć tabele z wielu baz danych w jedno zapytanie LINQ-SQL. Niestety, mam osobną konfigurację klasy DataContext dla każdej bazy danych, więc to zapytanie nie będzie działać. Otrzymuję następujący błąd:„Zapytanie zawiera odwołania do elementów zdefiniowanych w innym kontekście danych”

Idealnym rozwiązaniem wydaje się stworzenie pojedynczego DataContext dla wszystkich trzech baz danych. Wszystkie one istnieją na tym samym serwerze, więc mogą używać tego samego ciągu połączenia. Obecnie używam skryptu, który uruchamia sqlmetal.exe do generowania moich plików DBML i CS, co oznacza, że ​​nie muszę ręcznie edytować żadnych plików, gdy zmieniam model danych. Chcę utrzymać ten poziom automatyzacji, ale wydaje się, że sqlmetal.exe obsługuje tylko jedną bazę danych na plik DBML.

Czy to możliwe z sqlmetal lub innym narzędziem? Czy muszę rozważyć inne rozwiązanie, takie jak wykorzystanie pojedynczej bazy danych dla całej aplikacji?

Oto skrypt wsadowy, którego używam:

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SqlMetal.exe" /server:MYSERVER /database:DatabaseOne /views /functions /sprocs /dbml:DatabaseOne.dbml /namespace:Model.Domain.DatabaseOne /context:DatabaseOneDataContext /pluralize
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SqlMetal.exe" /server:MYSERVER /database:DatabaseOne /views /functions /sprocs /code:DatabaseOne.designer.cs /language:C# /namespace:Model.Domain.DatabaseOne /context:DatabaseOneDataContext /pluralize

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SqlMetal.exe" /server:MYSERVER /database:DatabaseTwo /views /functions /sprocs /dbml:DatabaseTwo.dbml /namespace:Model.Domain.DatabaseTwo /context:DatabaseTwoDataContext /pluralize
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SqlMetal.exe" /server:MYSERVER /database:DatabaseTwo /views /functions /sprocs /code:DatabaseTwo.designer.cs /language:C# /namespace:Model.Domain.DatabaseTwo /context:DatabaseTwoDataContext /pluralize

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SqlMetal.exe" /server:MYSERVER /database:DatabaseThree /views /functions /sprocs /dbml:DatabaseThree.dbml /namespace:Model.Domain.DatabaseThree /context:DatabaseThreeDataContext /pluralize
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SqlMetal.exe" /server:MYSERVER /database:DatabaseThree /views /functions /sprocs /code:DatabaseThree.designer.cs /language:C# /namespace:Model.Domain.DatabaseThree /context:DatabaseThreeDataContext /pluralize

questionAnswers(2)

yourAnswerToTheQuestion