2012-11-15 92 views
2

我有兩個SQL Server數據庫(dbInfodbData),我想向我的.NET應用程序(WPF,ASP.NET MVC,...)添加一個/兩個EF模型/ s。EF中的模型和數據庫

問:添加EF模型的最佳方法是什麼?添加兩個模型,每個數據庫一個?

  • 添加兩個edmx模型,每個數據庫一個?
  • 使用SQL Synonyms將兩個數據庫添加一個edmx模型?
  • 其他版本...
+0

到目前爲止,我發現的最大問題是,你受限於你的同義詞的限制。這可能會也可能不會成爲問題,具體取決於您的服務器設置方式以及您的查詢類型。例如,不能在鏈接服務器上使用「OUTPUT」關鍵字,因此如果您的同義詞指向使用「OUTPUT」的鏈接服務器上的過程,則會導致錯誤。 – Rachel

回答

0

這在很大程度上取決於兩個數據庫之間的交互量。

儘管如此,我強烈希望保持它們在不同的模型。一個包含兩個數據庫的模型引入了許多錯綜複雜和依賴關係,您寧願避免:

  • 必須定義同義詞。
  • 當「其他」數據庫更改時,可能必須修改主數據庫中的同義詞。
  • 如果一個數據庫發生更改,則必須更新爲整個模型。
  • 數據庫(可能)不能有不同的版本(edmx模型是版本敏感的)。
  • 同義詞是不同數據庫中對象的路徑。路徑可以通過移動其中一個數據庫或通過重命名目標對象來中斷。您只能在運行時注意。
  • 備份/恢復必須同步。

,可能更多...

但是,有可能是一個引人注目的要求,即吹走這些反對意見。如果您希望在一個事務中修改兩個數據庫中的數據,使用同義詞和一個上下文(以及一個數據庫連接)會更容易。否則,您必須在代碼中使用TransactionScope,並在數據庫服務器上啓用DTC。

相關問題