J'essaie d'obtenir cette requête LINQ pour retourner les correspondances exactes si elles existent ou le résultat "startswith" sinon. En ce moment, il retourne les deux.Filtrage des résultats LINQ to DataTable
exemple
SearchParam = "Mundt" Résultats = Mundt, Mark | Mundt, Chris | Mundth, Lori
public static DataTable SearchPerson(string SearhParam)
{
var context = new ConnectDataContext(Properties.Settings.Default.ConnectConnectionString);
var myQuery = (from person in context.tblPersons
where person.LastName.StartsWith(SearhParam) || person.LastName == SearhParam
orderby person.LastName
select new { person.PersonID, person.LastName, person.FirstName, person.SSN });
var dataTable = myQuery.CopyLinqToDataTable();
return dataTable;
}
Le 2 hits à la db est probablement plus rapide, car si le match existe vous avez terminé. Si vous filtrez en mémoire, vous devez effectuer une recherche O (n) pour savoir si vous avez encore du travail à faire. –
y, bien que cela varie beaucoup par scénario. Si le nombre de personnes est considérablement réduit, le délai aller-retour sera plus long. Cela dit, je ne voudrais pas le suer, si [insérer des affaires] se passe bien il y aura beaucoup de gens dans le système :) – eglasius
Depuis mon scénario implique d'interroger une base de données locale, je suis bien avec plusieurs appels. Merci! –