Details

Language / Topic
csharpC#
Category
Libraries

Rules

balanced

Dapper

- Use `connection.QueryAsync<T>()` for mapping results to strongly-typed objects. Always use parameterized queries (`new { Id = id }`) — never concatenate SQL strings. Use `using` statements for connection lifecycle.

Dapper

- Use `connection.QueryAsync<T>()` for mapping results to strongly-typed objects. Always use parameterized queries (`new { Id = id }`) — never concatenate SQL strings. Use `using` statements for connection lifecycle.
- Use `QueryFirstOrDefaultAsync<T>()` for single-row queries. Use `ExecuteAsync()` for INSERT/UPDATE/DELETE. Use multi-mapping (`Query<A,B,C>`) with `splitOn` for joins. Use `DynamicParameters` for optional/conditional query parameters. Wrap related operations in `IDbTransaction` for atomicity.