Docs / Read One Row

Read One Row

What this page covers#

This page explains SingleAsync<T>.

Basic example#

</> C#
var user = await db.SingleAsync<User>(
    "dbo.usp_User_GetById",
    new MooParams()
        .AddInt("@UserId", 42));

Behaviour#

SingleAsync<T> behaves like this:

  • if no rows are returned, the result is null
  • if exactly one row is returned, it is mapped
  • if more than one row is returned, MooDb throws

Custom mapper example#

</> C#
var user = await db.SingleAsync(
    "dbo.usp_User_GetById",
    static reader => new User
    {
        UserId = reader.GetInt32(reader.GetOrdinal("UserId")),
        Name = reader.GetString(reader.GetOrdinal("Name"))
    },
    new MooParams()
        .AddInt("@UserId", 42));