【发布时间】:2013-08-22 03:13:08
【问题描述】:
我目前在多数据库 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 ...);
现在这是票券,可以按我的意愿工作。我目前遇到的唯一问题是架构更新等发生时(这相对频繁,因为我们处于重要的开发阶段)。
(最后是问题!) 当我将任何表拖到 Source 自动拾取的数据上下文时,我想要实现的目标(并且我已将问题标记为 T4 作为猜测,因为我知道 DBML 文件是 T4 引导的)是一种自动化方式数据库名称(所以会有 Users.dbo.UserDetails 而不仅仅是 dbo.UserDetails)?
感谢任何指点:)
特里
【问题讨论】:
标签: linq linq-to-sql t4 cross-database