Usando la forma preferida de combinar Autofac y Dapper

autofac c# dapper inversion-of-control ioc-container

Pregunta

Hemos utilizado EF como la columna vertebral de la mayor parte del acceso a datos en nuestra aplicación actual y nos alejamos lentamente de algunas de las consultas más intensivas en servidores y reemplazándolas con Dapper.

Con esto en mente, ¿cuál es la forma preferida de implementar la conexión con Autofac? ¿Es para inyectar una IDBConnection o una cadena de conexión? IDBConnection se siente mejor para mí, pero si usa "usar" se elimina y no se puede acceder a él mediante llamadas posteriores.

Respuesta popular

Tenemos un proyecto usando EF y Dapper. Estamos registrando IDbConnection de esta manera:

        builder.Register(c =>
            {
                var db = c.Resolve<MyDbContext>();
                if (db.Database.Connection.State != ConnectionState.Open)
                {
                    db.Database.Connection.Open();
                }
                return db.Database.Connection;
            })
               .As<IDbConnection>()
               .ExternallyOwned() // DbContext owns connection and closes him when disposing.
               .InstancePerHttpRequest();

E inyectando IDbConnection en nuestros controladores.



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é