Fra min erfaring er personsøgning altid hurtigere, hvis den overlades til databasen. Når alt kommer til alt er en database bygget til at forespørge og manipulere enorme mængder data.
Hvis du returnerer store mængder data i .NET og "cacherer" det i session vil du hurtigt løbe tør for hukommelse på din server.