Dapper - QueryFirstOrDefault
La description
La méthode QueryFirstOrDefault est une méthode d'extension qui peut être appelée à partir de tout objet de type IDbConnection. Il peut exécuter une requête et mapper le premier résultat, ou une valeur par défaut si la séquence ne contient aucun élément.
Le résultat peut être associé à:
Paramètres
Le tableau suivant montre différents paramètres d'une méthode QueryFirstOrDefault.
prénom | La description |
---|---|
sql | La requête à exécuter. |
param | Les paramètres de la requête (default = null). |
transaction | La transaction à utiliser (default = null). |
CommandTimeout | La commande timeout (default = null) |
type de commande | Le type de commande (default = null) |
Premier, unique et par défaut
Veillez à utiliser la bonne méthode. Les méthodes First & Single sont très différentes.
Résultat | Pas d'objet | Un article | Nombreux objets |
---|---|---|---|
Premier | Exception | Article | Premier article |
Unique | Exception | Article | Exception |
FirstOrDefault | Défaut | Article | Premier article |
SingleOrDefault | Défaut | Article | Exception |
Exemple - Requête anonyme
Exécutez une requête et mappez le premier résultat sur une liste dynamique ou sur une valeur par défaut si la séquence ne contient aucun élément.
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";
using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
var orderDetail = connection.QueryFirstOrDefault(sql, new {OrderDetailID = 1});
FiddleHelper.WriteTable(orderDetail);
}
include composant-try-it.html href = 'https: //dotnetfiddle.net/58YMxR'%}
Exemple - Requête fortement typée
Exécutez une requête et mappez le premier résultat sur une liste fortement typée ou sur une valeur par défaut si la séquence ne contient aucun élément.
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;";
using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
var orderDetail = connection.QueryFirstOrDefault<OrderDetail>(sql, new {OrderDetailID = 1});
FiddleHelper.WriteTable(new List<OrderDetail>() { orderDetail });
}
include composant-try-it.html href = 'https: //dotnetfiddle.net/2WQ7sc'%}