Dapper - Result Anonymous

Description

Extension methods can be used to execute a query and map the result using dynamic.

The anonymous result can be mapped from following extension methods:

These extension methods can be called from any object of type IDbConnection.

Example - Query

Query method can execute a query and map the result to a dynamic list.

Example
string sql = "SELECT * FROM OrderDetails";

using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
	connection.Open();
	
	var orderDetails = connection.Query(sql).ToList();

	Console.WriteLine(orderDetails.Count);
}

Try it online

Example - QueryFirst

QueryFirst method can execute a query and map the first result to a dynamic list.

Example
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";

using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
	connection.Open();
	
	var orderDetail = connection.QueryFirst(sql, new {OrderDetailID = 1});

	Console.WriteLine(orderDetail.Quantity);
}

Try it online

Example - QueryFirstOrDefault

QueryFirstOrDefault method can execute a query and map the first result to a dynamic list, or a default value if the sequence contains no elements.

Example
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";

using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
	connection.Open();
	
	var orderDetail = connection.QueryFirstOrDefault(sql, new {OrderDetailID = 1});

	Console.WriteLine(orderDetail.Quantity);
}

Try it online

Example - QuerySingle

QuerySingle method can execute a query and map the first result to a dynamic list, and throws an exception if there is not exactly one element in the sequence.

Example
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";

using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
	connection.Open();
	
	var orderDetail = connection.QuerySingle(sql, new {OrderDetailID = 1});

	Console.WriteLine(orderDetail);
}

Try it online

Example - QuerySingleOrDefault

QuerySingleOrDefault method can execute a query and map the first result to a dynamic list, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.

Example
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";

using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
	connection.Open();
	
	var orderDetail = connection.QuerySingleOrDefault(sql, new {OrderDetailID = 1});

	Console.WriteLine(orderDetail);
}

Try it online