【问题标题】:querying databases on same server with linq使用 linq 在同一台服务器上查询数据库
【发布时间】:2010-04-14 12:46:44
【问题描述】:

在普通 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 可以做到这一点吗?谢谢。

【问题讨论】:

    标签: linq-to-sql inner-join


    【解决方案1】:

    不直接支持单个上下文下的多个数据库。在第一个数据库中创建指向第二个数据库中的表的视图,并将实体映射到这些视图。

    本文还展示了这一点,以及手动编辑数据源属性的替代选项:

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

    【讨论】:

    • 是的,这似乎是完成它的最直接的方法。谢谢。
    【解决方案2】:

    就我个人而言,当我需要在 LINQ-to-SQL 中加入时,我只需在 SQL 中创建它们。使用 LINQ 编写它们相当困难,但使用 LINQ 中的 .JOIN 选择器应该可以。

    解释了另一种编写 LINQ 查询的方法here

    【讨论】:

      【解决方案3】:

      尝试使用 db1.ExecuteQuery(@"your query")

      HTH

      【讨论】:

        猜你喜欢
        • 2016-03-07
        • 2017-11-18
        • 2014-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-23
        相关资源
        最近更新 更多