C'è una differenza significativa tra .Find(id)
e .Where(x = >x.Id == id)
che dovrebbe costringermi a utilizzare .Find()
su .Where()/.First()
?Entity Framework Find vs. Where
Immagino che .Find()
sarebbe più efficiente ma è molto più efficiente che dovrei evitare .Where()/.First()
?
La ragione per cui chiedo è che sto usando un FakeDbSet generico nei miei test per semplificare l'implementazione di risultati falsi e finora ho scoperto che devo ereditare quella classe e fornire un'implementazione personalizzata di .Find()
mentre se scrivo il mio codice con .Where()/.First()
Non ho bisogno di fare quel lavoro extra.
Bene, probabilmente starai meglio confrontando 'Find' e' SingleOrDefault', poiché 'Where' restituisce le collezioni. –
Vero, anche se uso sempre .First o .FirstOrDefault. –
@JimmyBosse potresti prendere in considerazione l'uso di Single, per tutte le situazioni in cui dovrebbe corrispondere solo 1 record. – Kyle