現在、マルチ DB SQL Server 環境で実行しており、linq to sql を使用してクエリを実行しています。
ここに記載されているアプローチを使用してクロス DB 結合を実現しています: http://www.enderminh.com/blog/archive/2009/04/25/2654.aspx
だから基本的に:
2 つのデータ コンテキスト - ユーザーと支払い
Users.dbo.UserDetails {PK: UserId }
Payments.dbo.CurrentPaymentMethod { PK: UserId }
テーブルを DBML にドラッグし、プロパティ ウィンドウで、ソースを 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 ...);
今、これはチケットのようなブーイングであり、私が望むように機能します. 私が現在抱えている唯一の問題は、スキーマの更新などが発生するときです (重要な開発段階にあるため、比較的頻繁に発生します)。
(そして最後に、質問です!)私が達成したいこと(そして、DBMLファイルがT4ガイド付きであることを知っているので、推測として質問をT4としてマークしました)は、任意のテーブルをソースが自動的に DB 名を取得するデータ コンテキスト (つまり、dbo.UserDetails だけでなく、Users.dbo.UserDetails を持つことになります)?
ポインタをありがとう:)
テリー