2009-10-08 21 views
7

我有兩個來自兩個不同的數據上下文的表。雖然兩個表都來自同一個數據庫,但存在兩個單獨的數據上下文。如何從不同的數據上下文內連接表?

錯誤消息:

查詢包含到一個不同的數據上下文定義的項目的引用。

我該如何解決這個問題?任何幫助表示讚賞。謝謝。

+1

從商業的角度看,有兩個datacontexts有什麼意義?通常我會建議每個數據庫總是隻有1個datacontext,並與之協同工作... – Robban 2009-10-08 13:43:43

+2

這可能沒有意義,但這是我正在與之合作。 – jinsungy 2009-10-08 14:08:34

+0

其中一個上下文用於讀取,另一個用於寫入的好習慣 – skyfoot 2012-03-21 13:42:22

回答

0

爲什麼不在每種情況下都包含必要的表格?

+1

我得到「該成員被多次定義」錯誤。 – jinsungy 2009-10-08 13:48:14

+0

然後你可能會做其他的事情。 – 2009-10-08 14:08:24

+0

當您有多個模型時,EF不考慮名稱空間。在多個模型中不能有相同名稱的表。不要相信我?嘗試一下 ! – 2017-07-11 11:39:05

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使用的類的屬性,因此,如果您使用GetTable在另一個數據上下文而不是表格附加到它上面的表格將從類def中選取表格,列等屬性,並將其用作查詢中使用的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() 
相關問題