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는 합법적입니까? 예, 이유를 알아보십시오.