LINQ to SQL:从不同服务器上的两个DB获取记录

时间:2010-04-22 14:55:50

标签: sql-server linq-to-sql cross-database

我需要从表中获取记录,这是两个差异。两个不同SQL Server中的数据库。

For Instance。 server1上的Sales DB和server2上的Purchase DB。 Sales和Purchase DB都有一些表,比如Sales DB中的table1和Purchase DB中的table2。 现在,我需要通过加入记录来获取table1和table2中具有一些共同记录的记录。

使用T-SQL我可以通过链接服务器然后查询它们来实现。

请建议,我怎么能使用LINQ to SQL来做这件事。

感谢。

2 个答案:

答案 0 :(得分: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
               };

答案 1 :(得分:0)

您可以在DB1中创建引用DB2上的table2的视图。