2012-10-06 23 views
5

Chúng tôi đã sử dụng EF làm xương sống cho hầu hết truy cập dữ liệu trong ứng dụng hiện tại của chúng tôi và chúng tôi đang dần dần chuyển nó khỏi một số truy vấn chuyên sâu hơn và thay thế nó bằng Dapper.Sử dụng cách nào ưu tiên để kết hợp Autofac và Dapper

Với mục đích này, cách ưa thích để triển khai kết nối với Autofac là gì? Là nó để tiêm một IDBConnection hoặc một chuỗi kết nối? IDBConnection cảm thấy tốt hơn cho tôi nhưng nếu bạn sử dụng "sử dụng" nó được xử lý và không thể truy cập được bằng các cuộc gọi tiếp theo.

+1

Giống như hầu hết mọi thứ, hiếm khi có một cách "ưa thích" duy nhất. Nếu bạn có gợi ý rằng bạn biết công việc, nó có thể đáng để đăng chúng, nhưng ... –

Trả lời

6

Chúng tôi có dự án sử dụng cả EF và Dapper. Chúng tôi đang đăng ký IDbConnection như thế này:

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

Và tiêm IDbConnection trong bộ điều khiển của chúng tôi.

Các vấn đề liên quan