2009-10-08 18 views
7

私は2つの異なるデータコンテキストから2つのテーブルを持っています。両方のテーブルが同じデータベースのものですが、2つの別々のデータコンテキストが存在します。異なるデータコンテキストから内部結合テーブルを作成する方法

エラーメッセージ:

クエリが異なるデータコンテキストに定義されたアイテムへの参照が含まれています。

どうすればこの問題を回避できますか?どんな助けもありがとうございます。ありがとう。

+1

2つのデータコンテキストを持つことは、ビジネスの観点からはどのように意味がありますか?通常、データベースごとに1つのdatacontextしか持たないことをお勧めします。 – Robban

+2

おそらくそれは意味をなさないでしょうが、これは私が作業しているものです。 – jinsungy

+0

1つのコンテキストと1つの書き込みのコンテキストを持つことの良い習慣 – skyfoot

答えて

0

なぜ、各コンテキストに必要なテーブルを含めるだけですか?

+1

"このメンバーは複数回定義されています"というエラーが表示されます。 – jinsungy

+0

あなたはおそらく何か間違っているでしょう。 –

+0

複数のモデルを持つ場合、EFは名前空間を考慮しません。複数のモデルに同じ名前のテーブルを持つことはできません。私を信じていない?それを試してみてください ! –

2

あなたはしません。データコンテキストがデータベースの一貫性のないビューを持つ可能性があります。

6

あなたのコードは、の線に沿って何かない場合:

from a in dc1.TableA 
join b in dc2.TableB on a.id equals b.id 
select new { a, b } 

を...だけのように変更します。

from a in dc1.TableA 
join b in dc1.GetTable<TableB>() on a.id equals b.id 
select new { a, b } 

L2SのDataContextのは、クラスの属性を使用していますので、あなたが使用している場合テーブルが接続されている別のdatacontext上のGetTableは、クラスdefからtable、columnなどの属性を取り出し、クエリで使用しているDCの一部であるかのように使用します。

1

別の解決策は、()を一覧表示するには、結果を変更です。

var query = (from a in dc1.TableA 
      join b in dc2.TableB on a.id equals b.id 
      select new { a, b }).ToList() 
関連する問題