使用EF 6的多租戶和連接池

connection-pooling entity-framework entity-framework-6

我們使用EF 4.3 Code First Model開發了一個多租戶應用程序,每個租戶都有自己獨立的數據庫。由於我們期望有大量租戶,我們希望維護租戶之間的連接池。

為了在EF 4.3 Code First模型中實現這一點,我們創建了“AppMaster”數據庫並使用EFProviderWrapperToolkit開發了自己的提供程序,該程序僅在內部使用SQL提供程序。我們的定制提供商將始終首先連接到“AppMaster”數據庫,然後將數據庫更改為相應的租戶特定數據庫。一切都按預期正常工作。

但是同一個提供程序不使用EF6,因為他們已將提供程序特定代碼移動到'System.Data.Entity.Core.Common'命名空間下的EntityFramework DLL。

是否有任何解決方案可以將指向相應數據庫的所有租戶的連接池維護到同一個數據庫服務器中?

熱門答案

EF6中的提供程序模型已更改。首先,您需要使用EF6提供程序。如果您使用的是Sql Server,EF6 Sql Server提供程序將包含在EF6程序包中。由於包裝提供程序只是另一個提供程序,因此您應閱讀並遵循有關重建EF6提供程序的文檔,並且包裝提供程序應繼續工作。請注意,該文檔包含有關EF6中包裝提供程序的部分。此外,在EF6中,我們引入了依賴注入和基於代碼的配置 ,這使得包裝的某些方面更容易。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因