J'ai plusieurs méthodes qui peuplent une collection de paramètres objets SQLCommand d'un objet comme celui-cirefactorisation Avec réflexion
if (!String.IsNullOrEmpty(SearchObj.FirstName))
{
command.AddParameter(Fields.FirstName, SearchObj.FirstName);
}
if (!String.IsNullOrEmpty(SearchObj.LastName))
{
command.AddParameter(Fields.LastName, SearchObj.LastName);
}
if (!String.IsNullOrEmpty(SearchObj.EmailAddress))
{
command.AddParameter(Fields.EmailAddress, SearchObj.EmailAddress);
}
if (SearchObj.JobRoleId > -1)
{
command.AddParameter(Fields.JobRoleId, SearchObj.JobRoleId);
}
Cela peut être gênant que l'objet peut contenir jusqu'à environ 20 propriétés. Est-ce que de toute façon utiliser la réflexion pour faire une boucle sur chacune de ces propriétés et les ajouter toutes à la collection de paramètres des objets Sqlcommand? En gardant à l'esprit qu'il traite les chaînes différemment des entiers en ce qu'il ajoute seulement une chaîne si elle n'est pas nulle ou vide et il ajoute seulement un entier s'il est supérieur à -1.
Je n'ai pas utilisé beaucoup de réflexion auparavant, donc un point dans la bonne direction serait génial.
Merci
Et pour la vitesse réelle, vous pouvez utiliser les informations pour générer du code qui accède rapidement et nativement à ces propriétés. –
Oui, et honnêtement, c'est là que le DLR est un excellent choix pour cela. Nous avons pris beaucoup de réflexion pour les objets inconnus et les avons remplacés par des appels DLR. La performance est excellente. –