.NET开发必知:详解C#操作MySQL的两种方式(ADO.NET与Dapper)及其性能对比

时间:2025-09-19 21:07
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
    private readonly IDbConnection _db;
 
    // 通过构造函数注入 IDbConnection
    public UsersController(IDbConnection db)
    {
        _db = db;
    }
 
    [HttpGet]
    public async Task<IActionResult> GetUsers()
    {
        var users = new List<User>();
        // 使用 Dapper 简化数据操作(推荐)
        // users = await _db.QueryAsync<User>("SELECT * FROM Users"); 
 
        // 或者使用原生 ADO.NET
        await _db.OpenAsync();
        using (var command = new MySqlCommand("SELECT * FROM Users", (MySqlConnection)_db))
        {
            using (var reader = await command.ExecuteReaderAsync())
            {
                while (await reader.ReadAsync())
                {
                    users.Add(new User
                    {
                        Id = reader.GetInt32("Id"),
                        Name = reader.GetString("Name")
                    });
                }
            }
        }
        return Ok(users);
    }
}
内网穿透工具自托管 vs 云端中转:穿云箭和花生壳优缺点深度分析
内网ip远程控制,借助内网IP实现远程控制的完整指南
远程访问内网IP:打破网络边界的连接艺术
理解Windows系统中的NAT转发功能
内网穿透工具自托管 vs 云端中转:穿云箭和花生壳优缺点分析
手把手配置SSR端口转发:UDP协议支持与高级设置详解
什么是nat123?nat123的核心功能
nat123端口映射:轻松实现外网访问内网
nat123下载:轻松获取内网穿透工具
nat123官网:老牌内网穿透工具