LINQ to SQL: получить записи из двух баз данных, которые находятся на разных серверах - PullRequest
2 голосов
/ 22 апреля 2010

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

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

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

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2010

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

0 голосов
/ 22 апреля 2010

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

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

Или вы можете определить контекст данных для каждой базы данных, а затем выбрать комбинацию в 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
               };
...