запросы к базам данных на одном сервере с помощью linq - PullRequest
0 голосов
/ 14 апреля 2010

В обычном sql я мог бы выполнять объединения таблиц в разных базах данных, если они находились на одном и том же сервере (или связанных серверах). В linq я не могу понять, как это сделать. Это возможно? Например, если у меня есть база данных с именем db1, а другая - с именем db2. У db1 есть таблица с именем people, а у db2 есть таблица с именем address. Я могу сделать что-то вроде ...

select a.addressline1, p.firstname
from db1.dbo.people p
inner join db2.dbo.address a on p.peopleid = a.peopleid

Возможно ли это с linq? Спасибо.

Ответы [ 3 ]

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

Несколько баз данных в одном контексте напрямую не поддерживаются. Создайте представления в первой базе данных, которые указывают на таблицы во второй, и сопоставьте сущности с этими представлениями.

Эта статья также показывает это и альтернативный вариант, вручную редактируя свойство источника данных:

http://damieng.com/blog/2010/01/11/linq-to-sql-tips-and-tricks-3

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

попробуйте использовать db1. ExecuteQuery (@ "ваш запрос")

НТН

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

Лично, когда мне нужны соединения в LINQ-to-SQL, я просто делаю их в SQL. С LINQ их довольно сложно написать, но это должно быть возможно с помощью селектора .JOIN в LINQ.

Другой способ написания LINQ-запросов объясняется здесь

...