如何在Dapper中使用C# records?能否无需默认构造函数?
Dapper对C# Records的支持情况
从Dapper 2.0版本开始,已经原生支持C#的record类型,完全不需要额外添加默认构造函数,你可以直接用这种简洁的方式定义DTO:
public record MyDto(string Id, string SomethingElse);
具体支持细节:
- Dapper会自动匹配record的位置/命名参数与查询结果的列名,无需额外配置映射关系
- 不管是你示例里的 positional record,还是带属性定义的record,都能正常完成数据映射
- 使用方式和普通类DTO完全一致,直接在查询方法中指定record类型即可
示例查询代码:
var result = connection.Query<MyDto>("SELECT Id, SomethingElse FROM MyTable WHERE Id = @Id", new { Id = "123" });
内容的提问来源于stack exchange,提问作者Tomas Jansson
相关产品推荐
相关产品推荐

