我需要从两个不同的表中获取记录。两个不同的 SQL Server 中的数据库。
例如。server1 上的销售数据库和 server2 上的购买数据库。销售数据库和采购数据库都有一组表,例如销售数据库中的表 1 和采购数据库中的表 2。现在,我需要通过加入它们来从 table1 和 table2 中获取有一些共同记录的记录。
使用 T-SQL 我可以通过链接服务器然后查询它们来做到这一点。
请建议,我如何使用 LINQ to SQL 来做到这一点,因为我不知道。
谢谢。
我需要从两个不同的表中获取记录。两个不同的 SQL Server 中的数据库。
例如。server1 上的销售数据库和 server2 上的购买数据库。销售数据库和采购数据库都有一组表,例如销售数据库中的表 1 和采购数据库中的表 2。现在,我需要通过加入它们来从 table1 和 table2 中获取有一些共同记录的记录。
使用 T-SQL 我可以通过链接服务器然后查询它们来做到这一点。
请建议,我如何使用 LINQ to SQL 来做到这一点,因为我不知道。
谢谢。
您可以在 DB1 中创建一个引用 DB2 上的 table2 的视图。
对此有(至少)两种可能的解决方案。
您可以定义一个存储过程来执行您已经熟悉的跨数据库查询。将存储过程添加为数据上下文中的方法。
或者,您可以为每个数据库定义一个数据上下文,然后在 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
};