Ich bin auf der Suche nach einer einfachen Lösung zu ersetzen meine standardisierte Junk Weg zu prüfen, ob ein Datensatz existiert vor dem Versuch, die Daten abzurufen. Derzeit, wenn einer meiner Methoden aufgerufen werden, muss ich etwas in der Art von ...Überprüfen Sie die Existenz eines Datensatzes vor der Rückgabe der Ergebnismenge in LINQ to SQL
private Record DoSomething(int id)
{
if(data.Records.Count(q=>q.Id==id) > 0)
{
return data.Records.First(q=>q.Id==id);
}
return null;
}
... wo ich die Anzahl der Datensätze immer überprüfen, die Existenz eines Datensatzes zu bestimmen. Es muss einen "eleganteren" Weg geben, dies zu tun, ohne die Datenbank zweimal aufzurufen. Gibt es einen Weg?
Ich denke SingleOrDefault eine Exception aus, wenn mehr als ein Datensatz zurückgegeben wird. Da es wie eine Id-Abfrage aussieht, ist es wahrscheinlich sicher anzunehmen, dass SingleOrDefault in Ordnung wäre, aber FirstOrDefault ist allgemeiner, denke ich. –
'Any (r => r.Id == id)' ist bevorzugt, weil es effizienter ist (wird zu einem "EXISTS" anstelle eines "COUNT" führen). – JulianR