Je tente de générer dynamiquement et d'exécuter le SQL pour Dapper dans le but de simplement transmettre un type et le SQL est généré et exécuté dynamiquement.Dynamique Func <> pour mappage de requête Dapper
classes Exemple:
public class User
{
[Key]
public int UserId { get; set; }
public Address Address { get; set; }
}
public class Address
{
[Key]
public int UserId { get; set; }
public string PostCode { get; set; }
}
aura pour effet de faire fonctionner les éléments suivants:
// sql: "SELECT User.UserId, Address.UserId, Address.PostCode FROM User LEFT JOIN Address ON Address.User = User.UserId"... // auto generated from 'User' type including join to 'Address';
connection.Query<User, Address, User>(sql, /*** map argument needs to be dynamic Func<> ***/);
Alors, étant donné ces types User
& Address
qui ne sont connus lors de l'exécution, comment puis-je générer le délégué approprié Func<User, Address, User>
à passer à l'argument map
?
Func<User, Address, User> map = (u, a) => {
u.Address = a;
return u;
}
Le examples que je l'ai vu pour la création d'un Func<>
utilisant la réflexion suppose les types sont connus, dans mon cas, ils ne sont pas les arguments de type différent (Func <,>/Func < ,,>/Func < ,,,> etc).
Toute aide appréciée. Je vais continuer à travailler à travers des exemples en utilisant des expressions pour voir si quelque chose colle.
https://stackoverflow.com/a/21731667/1264882 – WithMetta