使用 linq 查询同一服务器上的数据库
在普通的 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 实现吗?谢谢。
In normal sql I could do joins on tables in different databases as long as they were on the same server (or linked servers). In linq I can't figure out how to do that. Is this possible? For example, if I have a database called db1 and another called db2. db1 has a table called people and db2 has a table called address I could do something like...
select a.addressline1, p.firstname
from db1.dbo.people p
inner join db2.dbo.address a on p.peopleid = a.peopleid
Is this possible with linq? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不直接支持单个上下文下的多个数据库。在第一个数据库中创建指向第二个数据库中的表的视图,并将实体映射到这些视图。
本文还介绍了这一点,以及手动编辑数据源属性的替代选项:
http://damieng.com/blog/2010/01/11/linq-to-sql-tips-and-tricks-3
Multiple databases under a single context is not directly supported. Create views in the first database that point at tables in the second, and map entities to those views.
This article also shows this, and an alternative option by manually editing the datasource property:
http://damieng.com/blog/2010/01/11/linq-to-sql-tips-and-tricks-3
就我个人而言,当我需要 LINQ-to-SQL 中的联接时,我只是用 SQL 进行联接。使用 LINQ 时,它们相当难以编写,但使用 LINQ 中的 .JOIN 选择器应该可以实现。
此处解释了另一种编写 LINQ 查询的方法
Personally when i need joins in LINQ-to-SQL i just make them in SQL. With LINQ they're rather difficult to write but it should be possible with the .JOIN selector in LINQ.
Another way to writing LINQ-queries is explained here
尝试使用 db1。ExecuteQuery(@"您的查询")
HTH
try using db1.ExecuteQuery(@"your query")
HTH