Hi,
das mit der Arbeitsspeicherauslastung hört sich irgendwie danach an, dass alle Daten aus der Datailtabelle geladen werden, und dann ein Count ausgeführt wird. Hast Du Dir mal die Query angeschaut, die zur Datenbank geschickt wird?
Kenne das Ganze nur zu gut vom Entity Framework. Dort hat man zwei Interfaces, die bei der Abfrage zur Ausführung kommen können: IQueryable und IEnumerable.
IQueryable wird direkt in SQL-Syntax umgestzt und zur Datenbank geschickt - IEnumerable holt erst die Daten aus der Datenbank und führt dann den Enumerator aus...
Soll heißen, wenn man nicht genau aufpasst, so kann es auch mal passieren, dass man ungewollt die Daten aus der DB lädt.
LG