大多数的数据库支持下面的写法,我们可以通过As指定是哪个库
var list = db.Queryable<Order, OrderItem, Custom>((o, i, c) => o.Id == i.OrderId&&c.Id == o.CustomId) .AS("xx.dbo.order") .AS<OrderItem>("yy.dbo.OrderItem") .AS<Custom>("zz.dbo.Custom") .Select<ViewOrder>() .ToList();
像SqlServer在同一个服务器上面的多个库可以 用库名.dbo.表名去访问,如果是不同机器上的数据库
则需求下面的配置
可以企业管理器里添加linkserver实现。
使用sp_addlinkedserver创建一个链接的服务器,使其允许对分布式的、针对 OLEDB 数据源的异类查询进行访问。
在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。
步骤:
EXEC sp_addlinkedserver
@server='DB1',--被访问的服务器别名
@srvproduct='', --sqlserver不需要指定
@provider='SQLOLEDB',
5@datasrc='192.168.1.102' --要访问的服务器
EXEC sp_addlinkedsrvlogin
'DB1', --被访问的服务器别名
'false', --useself
NULL, --locallogin
'sa', --帐号
'123456' --密码
select * from db1.ecology2013_SHQC2.dbo.hrmresource
如果这个语句执行成功,那么就可以 .As("db1.ecology2013_SHQC2.dbo.hrmresource") 这样使用了
2016 © donet5.comApache Licence 2.0