Mam dość duży stół, którego szukam w mojej aplikacji internetowej, i chcę tylko zwrócić N liczbę wierszy z tabeli.Jak działa metoda Take()?
Czytałem poprzez dokumentacji MSDN, ale nie mogę zobaczyć, gdzie stwierdza się, jeśli Take()
najpierw ściąga wszystkie rekordy z bazy danych, czy też zachowuje się podobnie jak SQL Server TOP
.
Martwię jeśli Take()
będzie ciągnąć wszelkie rekordy, a następnieuzyskać najlepsze N liczba rekordów lub będą zachowywać się zgodnie z oczekiwaniami i pobrać tylko te N liczba rekordów bezpośrednio
Można użyć SQL Profiler zobaczyć SQL to generuje dla siebie. Zakładając, że wywołasz .Take() na IQueryable, powinien wykonać TOP N wobec SQL Server. Zawsze używam profilera, aby zapewnić, że Linq-SQL/Entities generuje przyzwoity SQL. – DaveShaw
Co 'Take()' zależy od używanej implementacji bazy danych i od tego, jak go używasz. Wszystkie typowe, z których korzystałem, są słuszne. –
Którego "LINQ" używasz? LINQ do SQL? Entity Framework? –