2010-05-07 75 views
1

我正在開發一個新項目,希望能夠使用LINQ to SQL來訪問數據 ,但遇到了以下問題。使用LINQ to SQL與多個數據庫

我需要我的應用程序訪問3個數據庫具有相似但不 相同的表結構,例如

數據庫1和數據庫2有一個名爲tblCustomer 2列 CustomerKey和客戶名稱

的Database2表有一個名爲tblCustomer與3列CustomerKey, CustomerName和CustomerPostCode

我正在尋找一個解決方案,將允許我查詢所有三個 數據庫s,而不需要3個GetCustomerList函數作爲Database1 ,而Database2可以使用與結構相同的函數 ,數據庫3的覆蓋函數帶回附加的 字段。

有沒有一種方法,我可以聲明基本DataContext類來處理數據庫 1和2繼承版本的數據庫3.

在此先感謝

斯圖爾特·弗格森

+0

不要忘記標記你最喜歡的答案;-) – Steven 2010-06-22 11:35:35

回答

1

我認爲這可能有三個略有不同的表定義(在三個數據庫中),只有一個實體/域對象。爲此,您將需要使用POCO實體(因此在L2S對象上沒有任何屬性),併爲DataContext提供包含數據庫定義的映射源。在這種情況下,您將需要三個單獨的數據庫連接,每個連接都有自己的DataContext及其自己的映射。

雖然這可能有效,但此解決方案可能很脆弱。也許你會更好地讓這些不同的客戶對象實現相同的接口或使用能夠表示所有這些接口的(非LINQ to SQL相關的)對象(代理)。