Multi-tenancy y pool de conexión utilizando EF 6

connection-pooling entity-framework entity-framework-6

Pregunta

Hemos desarrollado una aplicación multiusuario utilizando el modelo EF 4.3 Code First, donde cada inquilino tendrá su propia base de datos independiente. Como esperamos un número alto de inquilinos, queremos mantener el grupo de conexiones entre los inquilinos.

Para lograr esto en el modelo EF 4.3 Code First, creamos la base de datos 'AppMaster' y desarrollamos un proveedor propio utilizando EFProviderWrapperToolkit, que solo utiliza el proveedor de SQL. Nuestro proveedor personalizado siempre se conecta primero a la base de datos 'AppMaster' y luego cambia la base de datos a la base de datos específica del inquilino respectivo. Todo funcionaba bien como se esperaba.

Pero el mismo proveedor no está trabajando con EF6 ya que ha movido el código específico del proveedor a la DLL EntityFramework bajo el espacio de nombres 'System.Data.Entity.Core.Common'.

¿Alguna solución para mantener el conjunto de conexiones entre todos los inquilinos que apuntan a la base de datos respectiva en el mismo servidor de base de datos?

Respuesta popular

El modelo de proveedor en EF6 ha cambiado. En primer lugar, necesita utilizar un proveedor EF6. Si está utilizando el servidor Sql, el proveedor del servidor EF6 Sql está incluido en el paquete EF6. Dado que el proveedor de ajuste es solo otro proveedor, debe leer y seguir el documento sobre la reconstrucción de un proveedor para EF6 y el proveedor de ajuste debe continuar trabajando. Tenga en cuenta que el documento contiene una sección sobre el ajuste de proveedores en EF6. Además, en EF6, introdujimos la inyección de dependencias y la configuración basada en código, lo que facilita algunos aspectos del ajuste.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué