I use Dapper for some read-only database calls through a stored procedure. I have a query that will either return 1 row or nothing.
I am using Dapper as follows:
using (var conn = new SqlConnection(ConnectionString)) { conn.Open(); return conn.Query<CaseOfficer>("API.GetCaseOfficer", new { Reference = reference }, commandType: CommandType.StoredProcedure).FirstOrDefault(); }
The returned CaseOfficer object is as follows:
public class CaseOfficer { public string Title { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Email { get; set; } public string Telephone { get; set; } }
This then returns through the ASP.NET Web API application as JSON.
When the stored procedure returns the result, I get the following:
{ title: "Mr", firstName: "Case", lastName: "Officer", email: " test@example.com ", telephone: "01234 567890" }
But when it returns nothing, I get:
{ title: null, firstName: null, lastName: null, email: null, telephone: null }
How can I make Dapper return null (so that I can check and respond with 404), and not by default (CaseOfficer)?