C# 使用what';这是将Autofac和Dapper结合起来的首选方式
在我们当前的应用程序中,我们一直使用EF作为大多数数据访问的主干,而在一些服务器密集型的查询中,我们正慢慢地从EF转移到它,取而代之的是DapperC# 使用what';这是将Autofac和Dapper结合起来的首选方式,c#,inversion-of-control,ioc-container,autofac,dapper,C#,Inversion Of Control,Ioc Container,Autofac,Dapper,在我们当前的应用程序中,我们一直使用EF作为大多数数据访问的主干,而在一些服务器密集型的查询中,我们正慢慢地从EF转移到它,取而代之的是Dapper 考虑到这一点,实现与Autofac的连接的首选方式是什么?是注入IDBConnection还是连接字符串?IDBConnection对我来说感觉更好,但如果您使用“using”,它将被释放,后续调用无法访问。我们的项目同时使用EF和Dapper。我们正在这样注册IDB连接: builder.Register(c =>
考虑到这一点,实现与Autofac的连接的首选方式是什么?是注入IDBConnection还是连接字符串?IDBConnection对我来说感觉更好,但如果您使用“using”,它将被释放,后续调用无法访问。我们的项目同时使用EF和Dapper。我们正在这样注册IDB连接:
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();
builder.Register(c=>
{
var db=c.Resolve();
if(db.Database.Connection.State!=ConnectionState.Open)
{
db.Database.Connection.Open();
}
返回db.Database.Connection;
})
.As()
.ExternallyOwned()//DbContext拥有连接,并在处理时将其关闭。
.InstancePerHttpRequest();
和大多数事情一样,很少有一种“首选”方式。如果你有建议,你知道工作,这可能是值得张贴他们,但。。。