J'ai besoin de rechercher une table dblinq afin que la fonction retourne la liste des lignes si l'un des champs correspond à l'entrée de recherche.Comment rechercher une propriété à partir d'une table avec linq?
Il est plus similaire à la recherche Google où vous effectuez une recherche avec un mot-clé et la liste des documents correspondants sont affichés.
J'ai utilisé la réflexion pour cette technique. Pouvez-vous vérifier si cette méthode est correcte ou existe-t-il une méthode simple pour y parvenir?
J'ai toutes les propriétés des lignes de la table dblinq et comparé si son type de chaîne, puis vérifier la valeur.
Le code que je l'ai utilisé
public static List<Contacts> SearchContact(string searchText)
{
List<Contacts> list = new List<Contacts>();
try
{
var rows= from p in context.tblContacts select p;
foreach (var contact in rows)
{
Type type = contact.GetType();
Type typesearch = searchText.GetType();
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo pro in properties)
{
if (pro.PropertyType == typesearch)
{
var value = pro.GetValue(contact, null);
string val = value as string;
if (val != null && val == searchText)
{
list.Add(contact);
break;
}
}
}
}
}
catch (Exception ex)
{
}
return list;
}
PS: Je reçois les résultats attendus de cette méthode, mais je voudrais savoir si j'ai trop une autre façon.
Merci Bala, donc de toute façon je devrais utiliser la réflexion pour ce droit? – Coder323