2

我们使用 EF 4.3 Code First 模型开发了一个多租户应用程序,其中每个租户都有自己独立的数据库。由于我们预计租户数量较多,因此我们希望维护跨租户的连接池。

为了在 EF 4.3 Code First 模型中实现这一点,我们创建了“AppMaster”数据库并使用 EFProviderWrapperToolkit 开发了自己的提供程序,它在内部仅使用 SQL 提供程序。我们的定制提供商将始终首先连接到“AppMaster”数据库,然后将数据库更改为各个租户特定的数据库。一切都按预期工作正常。

但是同一个提供程序无法使用 EF6,因为他们已将提供程序特定代码移动到“System.Data.Entity.Core.Common”命名空间下的 EntityFramework DLL。

是否有任何解决方案可以在指向同一数据库服务器的所有租户之间维护连接池?

4

1 回答 1

0

The provider model in EF6 has changed. First of all you need to use an EF6 provider. If you are using Sql Server the EF6 Sql Server provider is included in the EF6 package. Since the wrapping provider is just another provider you should read and follow the document about rebuilding a provider for EF6 and the wrapping provider should continue to work. Note that the document contains a section about wrapping providers in EF6. In addition in EF6 we introduced dependency injection and code-based configuration which makes some aspects of wrapping easier.

于 2013-05-07T16:50:32.490 回答