2011-02-16 55 views
5

我需要知道如何(如果可能)使用實體框架與來自不同數據庫的表關聯。我有一個edmx用於我的「xyz」數據庫,另一個用於我需要使用EF將它們關聯起來的「zyx」。我知道如何使用FK來解決這個問題,這不是我想要的,我希望能夠使用可視化編輯器來做到這一點,而不是手工添加FK到我的數據庫。來自不同數據庫的關聯表 - 實體框架

這裏有我想要的東西例如之實踐:

表用戶 - 數據庫:ABC 表信息 - 數據庫:XYZ

我需要用戶到信息,反之亦然關聯。

任何人都可以幫助我嗎?

謝謝!

+0

順便說一下,您不能在我的知識中創建交叉數據庫FK,也不能通過手或視覺創建。 – 2011-02-16 13:06:40

+0

我知道,那實際上不是FK。例如,將會是一個字段「extID」,在這個字段中,我會從另一個表中放入記錄的ID。 PS:但這是我想到的解決方法,可能有更好的方法來解決它。 :D感謝您的評論。 – eestein 2011-02-16 13:08:38

回答

2

您可以將它們與Linq-to-Objects一起查詢,但不能與L2S或L2E一起查詢。

上下文圍繞1個Db連接,您不能跟蹤/更新來自多個數據庫的實體。

可能的解決方法是從另一個'鏈接'到其中一個Db。 MS-SQL可以做到這一點。對EF來說,它會出現1個數據庫。

1

無法在EF中使用edmx設計圖面來實現此目的。

您可以在您的域模型中封裝此關聯,並在兩個EF上下文之間提供分佈式事務。我們已經使用EF Context「容器」類實現了後者,該類提供了一個內部上下文集合,當它包含多個上下文(這依賴於IUnitOfWork抽象來有效工作)時使用TransactionScope。