Czy istnieje znacząca różnica między .Find(id)
a .Where(x = >x.Id == id)
, która powinna zmusić mnie do korzystania z .Find()
przez .Where()/.First()
?Podsumowanie struktury jednostki kontra Gdzie
Wyobrażam sobie, że .Find()
będzie bardziej wydajny, ale czy jest o wiele bardziej wydajny, niż powinienem unikać .Where()/.First()
?
Pytam się, że używam rodzajowe FakeDbSet w moich testów, aby ułatwić wdrożenie fałszywe wyniki, a do tej pory znalazłem, że muszę odziedziczyć tę klasę i zapewniają realizację niestandardowej .Find()
natomiast jeśli piszę mój kod z .Where()/.First()
Nie muszę wykonywać tej dodatkowej pracy.
Cóż, prawdopodobnie lepiej byłoby porównać 'Find' i' SingleOrDefault', ponieważ 'Where' zwraca kolekcje. –
To prawda, chociaż zawsze używam .First lub .FirstOrDefault. –
@ JimmyBosse możesz rozważyć użycie Single, w dowolnych sytuacjach, w których powinien pasować tylko jeden rekord. – Kyle