2010-03-19 103 views
0

我一直在尋找的博客和文章,但我還沒有發現這種情況下很多支持。我一直在EF周圍摸索,並意識到我可以創建包含來自多個數據庫的數據的視圖,然後從這些視圖構建EF對象模型。雖然它起作用,但我不確定性能,可伸縮性和可維護性等常見問題。我實現數據庫之間的連接的方式是在EF模型中創建關聯。我可以在一個SQLServer實例的多個數據庫中使用EF嗎?

沒有人有這種類型的實現的任何信息?這個提議的解決方案是另一種解決方案還是評論?

感謝,

湯姆

回答

0

至於讓所有的意見在一個數據庫基礎上多個數據庫中的數據,我還沒有看到比其在同一數據庫中的一切任何特定的性能差異。

你最大的單一直接的影響將是安全的。假設您不允許鏈接,那麼用戶必須擁有跨數據庫視圖工作級別的底層交叉數據庫對象的權限(即,如果頂級視圖引用了表,他們需要擁有在你使用的列上進行適當的SELECT,如果它指向一個視圖,它們在視圖上需要相同 - 但是可能在下面的任何東西上) - 因此它們必須被允許作爲用戶在該數據庫中的某個角色並且具有權限。

在結構上,多個數據庫帶來一定的挑戰和限制,所以對於可維護性,是的,這可能是一個因素 - 別名可能是一種選擇這裏。

很顯然,對於SQL Server的可伸縮性,假設你沒有擴大規模(這是典型的SQL Server路由),你會遇到分片的困難,因爲現在每個數據庫都是兩個數據庫或其他類型的數據庫。或者多個數據庫通過鏈接服務器連接到一箇中央數據庫除非您有特別輕的訪問權限,否則這不會很好地擴展。或者在每個實例中連接到複製數據庫的多個數據庫可能是一個選項。這完全取決於您的域名和數據問題;有很多可能性。

因此整合可能是需要向規模化,並使用數據庫中不同的模式可能是一種選擇期望中的選項。您現在可以從視圖開始,然後當數據移動到單個數據庫中時,視圖將不再跨越數據庫。

而且,你不能在對象上,借鑑了其他數據庫中的對象保證SCHEMABINDING。

相關問題