是否可以使用 LINQ 跨不同数据库执行连接?

Posted

技术标签:

【中文标题】是否可以使用 LINQ 跨不同数据库执行连接?【英文标题】:Is it possible to perform joins across different databases using LINQ? 【发布时间】:2010-11-25 16:16:24 【问题描述】:

是否可以使用 LINQ 跨不同的数据库执行连接?如果是那怎么办?

【问题讨论】:

【参考方案1】:

如果数据库在同一台服务器上,您可以创建视图(以及 3 部分命名),以便可以从一个数据库中查询所有表。

如果数据库位于不同的服务器上,您可以使用链接服务器和视图(以及 4 部分命名),以便可以从一个数据库中查询所有表。

【讨论】:

+1 - 这是我的首选答案,也是我在紧急情况下使用过几次的技术 :) 这确实应该被标记为正确答案。您立即使用当前接受的答案无缘无故地管理多个上下文/模型连接字符串和更复杂的 linq 查询。 表格属性也可以使用3部分命名。【参考方案2】:

调用.ToList()是在查询db中的所有记录,所以如果表中有很多记录的话会吃很多内存。

或者试试这个The specified LINQ expression contains references to queries that are associated with different contexts。

【讨论】:

有更多代表,you will be able to flag duplicate questions like this,并提到诸如 cmets 中的性能注意事项等旁注。在此之前,发布链接或评论作为答案并不理想,它们通常会被删除。 我应该说这是一个重复的问题,对吧?谢谢!

以上是关于是否可以使用 LINQ 跨不同数据库执行连接?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 LINQ 执行基于集合的属性分配?

是否应该使用 Linq? [关闭]

我的数据库连接是否关闭? (Linq to Sql)

是否可以在同一集群中的两个不同 AWS Redshift 数据库之间运行连接?

PostgreSQL 中具有特定模式的 Linq 和实体迁移

C# LINQ 与两个不同数据集上的条件 where 子句连接