c # Dapper - utilisation de linq sur la méthode QueryAsync
Sep 01 2020
Pourquoi ne puis-je pas utiliser .select sur une queryAsync alors que cela fonctionne correctement sur Query? Par exemple, ici le .select me crie dessus en me disant qu'il ne peut pas résoudre le symbole "select":
var result = await sqlConnection.QueryAsync<Product>(procedure,
commandType: CommandType.StoredProcedure).Select(p => new Product
{
Code= (string)p.fldCode,
Name=(string)p.fldName
});
mais dès que je passe à Query, il ne crie plus. si quelque chose il a du mal à résoudre les colonnes fldCode à partir du sp:
var result = sqlConnection.Query<Product>(procedure,
commandType: CommandType.StoredProcedure).Select(p => new Product
{
Code= (string)p.fldCode,
Name=(string)p.fldName
});
Pourquoi est-ce?
J'ai posé une question précédente ici C # Dapper mappant les colonnes aux propriétés de l'entité - "Impossible de résoudre le symbole 'Select'"
Réponses
1 Milney Sep 01 2020 at 09:06
Les méthodes async renvoient une tâche (essentiellement un espace réservé pour le résultat éventuel de l'action asynchrone). Vous devez l'attendre pour obtenir la valeur réelle
var result = (await sqlConnection.QueryAsync<Product>(
procedure,
commandType: CommandType.StoredProcedure
)).Select(p => new Product
{
Code= (string)p.fldCode,
Name=(string)p.fldName
}
);