电话
400 9058 355
Dapper在.NET 6 Minimal API中可直接手动创建SqlConnection并用QueryAsync执行异步查询,无需注册IDbConnection;推荐安装Dapper和Microsoft.Data.SqlClient包,结合参数化SQL与using释放连接,或封装为Repository提升可维护性。
Minimal API不依赖Startup或Program类的复杂配置,Dapper作为轻量级ORM,天然适配这种简洁风格。你不需要注册IDbConnection服务,只需在需要的地方手动创建连接(如SqlConnection),用Dapper扩展方法执行查询即可。
确保项目引用以下两个核心包:
命令行安装示例:
dotnet add package Dapper以一个获取用户列表的GET端点为例,直接在MapGet里写数据访问逻辑:
var builder = WebApplication.CreateBuilder(args); var app = builder.Build();app.MapGet("/users", async (HttpContext ctx) => { var connectionString = builder.Configuration.GetConnectionString("Default"); using var connection = new SqlConnection(connectionString); var users = await connection.QueryAsync
("SELECT * FROM Users"); return Results.Ok(users); }); app.Run();
注意点:
using确保及时释放QueryAsync配合Results.Ok返回IResult,保持异步友好"WHERE Id = @id" + new { id = 123 })不建议所有API都内联SQL。可以提取为简单服务类,比如UserRepository:
public class UserRepository
{
private readonly string _connectionString;
public UserRepository(IConfiguration config) =>
_connectionString = config.GetConnectionString("Default");
public async Task> GetAllAsync() =>
await using var c = new SqlConnection(_connectionString);
return await c.QueryAsync("SELECT * FROM Users");
}
然后在Minimal API中注入并使用:
builder.Services.AddScoped();
// … 在MapGet中:
app.MapGet("/users", async (UserRepository repo) =>
Results.Ok(awai

t repo.GetAllAsync()));
这样既保持Minimal API的简洁,又兼顾了分层和测试友好性。
基本上就这些。Dapper和Minimal API搭配起来很轻快,不用动辄引入EF Core或复杂DI配置,适合中小项目或需要精细控制SQL的场景。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...