Ich versuche, diese LINQ-Abfrage zu erhalten, um exakte Übereinstimmungen zurückzugeben, wenn sie vorhanden sind, oder das "startswith" -Ergebnis, wenn nicht. Gerade jetzt kehrt es beides zurück.LINQ zu DataTable Ergebnisfilterung
Beispiel
SearchParam = "mundt" Ergebnisse = 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;
}
Die 2 Treffer auf die db ist wahrscheinlich schneller, denn wenn die Übereinstimmung besteht, sind Sie fertig. Wenn Sie im Speicher filtern, müssen Sie O (n) suchen, nur um zu wissen, ob Sie noch Arbeit haben. –
y, obwohl das pro Szenario sehr unterschiedlich ist. Wenn die Anzahl der Personen sehr gering ist, wird die Hin- und Rückfahrt länger dauern. Das heißt, ich würde es nicht schwitzen, wenn [Geschäft einfügen] gut geht, wird es eine Menge Leute im System geben :) – eglasius
Da mein Szenario die Abfrage einer lokalen Datenbank betrifft, geht es mir gut mit mehreren Anrufen. Danke! –