gpt4 book ai didi

c# - Dapper ORM 的实用类类似于存储库模式

转载 作者:行者123 更新时间:2023-11-30 18:37:37 28 4
gpt4 key购买 nike

我已经为 Dapper ORM 创建了以下存储库方法。

public SqlMapper.GridReader QueryMultiple(string query, object cmdParams = null, CommandType cmdType = CommandType.Text)
{
SqlMapper.GridReader objMulti;
var conn = GetSqlConnection();
objMulti = conn.QueryMultiple(query, cmdParams, commandTimeout: 0, commandType: cmdType);
return objMulti;
}

public IEnumerable<T> GetAll<T>(string query, object cmdParams = null, CommandType cmdType = CommandType.Text) where T : class
{
IEnumerable<T> objList;
using (var conn = GetSqlConnection())
{
objList = conn.Query<T>(query, param: cmdParams, commandTimeout:0, commandType: cmdType);
conn.Close();
}
return objList;
}

查询方法的使用看起来很好,操作完成后连接立即关闭。

new DapperRepository().Query("zyx").ToList();

但是 querymultiple 返回 gridreader。那么Dapper是不是在读操作完成后,同时处理connection和reader呢?请告知我的方法。

using (SqlMapper.GridReader multiResult = new DapperRepository().QueryMultiple(sql, new { id = id }))
{
var dbPRTGroup = multiResult.Read<Customer>().Single();
XXXXX
}

最佳答案

是的,确实如此。

根据您的最后一个代码块,连接和阅读器操作都在最后处理。这也可以通过在 .NET Framework 中使用 using 关键字来确保。

关于c# - Dapper ORM 的实用类类似于存储库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12519898/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com