AutofacとDapperを組み合わせる方法

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

質問

私たちは、現在のアプリケーションではデータアクセスの大部分をバックボーンとしてEFを使用していましたが、サーバー集中型のクエリではなく、代わりにDapperで置き換えています。

これを念頭に置いて、Autofacとの接続を実現するための推奨方法は何ですか? IDBConnectionまたは接続文字列を挿入するのですか? IDBConnectionは私にとっては気分が良いですが、「使用する」を使用すると、それは破棄され、以降の呼び出しではアクセスできなくなります。

人気のある回答

EFとDapperの両方を使ったプロジェクトがあります。次のようにIDbConnectionを登録しています:

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

私たちのコントローラにIDbConnectionを注入します。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ