Utiliser la méthode préférée pour combiner Autofac et Dapper

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

Question

Nous avons utilisé EF comme base pour la plupart des accès aux données dans notre application actuelle et nous nous en éloignons lentement pour certaines des requêtes les plus gourmandes en serveurs et les remplaçons par Dapper.

Dans cette optique, quelle est la manière préférée de mettre en œuvre la connexion avec Autofac? Est-ce pour injecter une IDBConnection ou une chaîne de connexion? IDBConnection me semble meilleur, mais si vous utilisez "using", il est éliminé et ne peut pas être consulté par les appels suivants.

Réponse populaire

Nous avons un projet utilisant à la fois EF et Dapper. Nous enregistrons IDbConnection comme ceci:

        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();

Et injecter IDbConnection dans nos contrôleurs.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi