SingleOrDefault vs FirstOfDefault

0

Cześć wytłumaczyciemi tak po chłopsku :D różnice między tymi dwoma zapytaniami linq :)

3

https://www.google.com/search?client=firefox-b-d&channel=trow&q=single+vs+first+linq

https://stackoverflow.com/questions/2724096/linq-single-vs-first

Single will throw an exception if it finds more than one record matching the criteria. First will always select the first record from the list. If the query returns just 1 record, you can go with First().

wiec single rzuci wyjatkiem jak w kolekcji jest wiecej niz jeden obiekt a First nie, bo on pobiera tylko pierwszy obiekt

3

Na chłopski rozum to różnica jest taka jak między "pojedynczy" i "pierwszy".

1

@Michał Warmuz Ostatnio wprowadziłem Cię w błąd, więc żeby mieć czyste sumienie:

  1. artykuł, dlaczego FirstOrDefault master race: https://github.com/SanderSade/common-linq-mistakes (szczególnie podoba mi się fragment, że if your database has two Person entries with same primary key (ID), you have far bigger problems than using LINQ badly, tj. nasza aplikacja ssie, bo musimy walidować stan bazy w klasach z niej czytających, by mieć pewność, że działa dobrze)

  2. artykuł, dlaczego SingleOrDefault master race: http://blog.springthrough.com/linqs-single-method-when-and-why-its-a-good-idea (jak zapomnisz dać unique constraint na kolumnie, to aplikacja się wywali, zamiast podać niepoprawne dane do użytkownika)

  3. post na SO o problemach z wydajnością: https://stackoverflow.com/a/9084196 (jak dasz index na kolumnę, to ich nie będzie)

Co byś nie wybrał i tak będzie źle ;) Zerknij też na mój ostatni post z recenzją kodu, który edytowałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1