我目前在多数据库 SQL Server 环境中运行并使用 linq to sql 执行查询。
我正在使用此处记录的方法来实现跨数据库连接: http ://www.enderminh.com/blog/archive/2009/04/25/2654.aspx
所以基本上:
2 个数据上下文 - 用户和付款
Users.dbo.UserDetails {PK: UserId }
Payments.dbo.CurrentPaymentMethod { PK: UserId }
我将表拖到 DBML 上,然后在属性窗口中,将 Source 从 dbo.UserDetails 更改为 Users.dbo.UserDetails 以完全限定 DB 名称。
然后,我可以通过执行以下操作发出单个数据上下文跨 DB 连接:
var results = (from user in datacontext.Table<UserDetail>()
join paymentmethod in dataContext.Table<CurrentPaymentMethod>() on user.UserId equals paymentmethod.UserId
... rest of query here ...);
现在这是票务嘘声,可以按我的意愿工作。我目前遇到的唯一问题是模式更新等发生时(这相对频繁,因为我们处于重要的开发阶段)。
(最后是问题!)当我将任何表格拖到源自动获取数据库名称的数据上下文(因此会有 Users.dbo.UserDetails 而不仅仅是 dbo.UserDetails)?
感谢您的任何指点:)
特里