【发布时间】:2021-09-09 14:18:14
【问题描述】:
我在我的项目中使用ASP.NET web forms unity 进行 DI:
接下来,我在我的项目中安装了Dapper,以通过我的 DAL 调用数据库资源。在我的 Startup 类中,我像这样插入了 IDbConnection,以便 Dapper 可以在任何地方使用该 IDbConnection:
container.RegisterInstance<IDbConnection>(new SqlConnection(connectionString));
我这里的问题是,如果我在课堂上使用这样的dbconnection,那么工作完成后sql连接将如何处理:
public class MyProvider: IMyProvider
{
private readonly IDbConnection _dbConnection;
public MyProvider(IDbConnection dbConnection)
{
_dbConnection = dbConnection;
}
public async Task<IEnumerable<MyData>> GetMyData()
{
const string sql = @"SELECT * from mytable";
return await _dbConnection.QueryAsync<Content>(sql);
}
}
在设置 DI 挂钩时,我在启动时担心这部分“(new SqlConnection(connectionString))”。调用数据库调用后如何以及何时释放 SQLConnection。上面的代码中没有任何地方写using。
Dapper 会在调用后处理 SQLConnection 吗?如果没有,那你能分享一下如何在进行 dapper 调用后转换上面的代码来处理 SQL 连接吗?
【问题讨论】:
标签: c# dependency-injection unity-container sqlconnection dbconnection