Szukam prostego rozwiązania, które zastąpi mój standardowy sposób śmieciowego sprawdzania, czy rekord istnieje przed próbą pobrania danych. Obecnie, gdy jeden z moich metod nazywane są, mam coś do skutku ...Sprawdzanie istnienia rekordu przed zwróceniem zestawu wyników w LINQ do 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;
}
... gdzie ja zawsze sprawdzić liczbę rekordów w celu ustalenia istnienia rekordu. Musi to być bardziej "elegancki" sposób, bez dwukrotnego wywoływania bazy danych. Czy istnieje sposób?
myślę SingleOrDefault rzuci wyjątek, jeśli zwracany jest więcej niż jeden rekord. Ponieważ wygląda na kwerendę Id, prawdopodobnie można założyć, że SingleOrDefault będzie w porządku, ale FirstOrDefault jest bardziej ogólny, jak sądzę. –
'Dowolny (r => r.Id == id)' jest preferowany, ponieważ jest bardziej wydajny (spowoduje "EXISTS" zamiast "COUNT"). – JulianR