2010-04-22 3 views
2

Мне нужно получить записи из таблиц, которые находятся в двух разностях. баз данных на двух разных серверах SQL.LINQ to SQL: Получить записи из двух БД, которые находятся на разных серверах

Для экземпляра. БД продаж на сервере1 и БД покупки на сервере2. В обеих отделах продаж и закупок есть несколько таблиц: таблица 1 в БД продаж и таблица2 в БД покупки. Теперь мне нужно получить записи из table1 и table2, которые имеют некоторые общие записи, объединив их.

Используя T-SQL, я могу сделать это, связав серверы, а затем запросив их.

Пожалуйста, предложите, как я могу это сделать, используя LINQ to SQL, поскольку я об этом не знаю.

Спасибо.

ответ

0

Для этого есть (по крайней мере) два возможных решения.

Вы можете определить хранимую процедуру, которая выполняет запрос кросс-баз данных, с которым вы уже знакомы. Добавьте хранимую процедуру как метод в контексте данных.

Или вы можете определить контекст данных для каждой базы данных, а затем выбрать комбинацию в Linq. Что-то вроде:

var table1records = from rec1 in context1.Table1 
        select rec1; 

var table2records = from rec2 in context2.Table2 
        select rec2; 

var combined = from rec1 in table1records 
       join rec2 in table2records on rec1.idColumn equals rec2.idColumn 
       select new 
       { 
       Rec1 = rec1, 
       Rec2 = rec2 
       }; 
0

Вы можете создать представление в DB1, которое ссылается на таблицу2 на DB2.

Смежные вопросы