I have a somewhat large table I'm querying in my web app, and I only want to return N number of rows from the table.
I've read through the MSDN documentation, but I can't see where it states if Take()
first pulls all of the records from the DB, or if it behaves similar to SQL Server's TOP
.
I'm worried if Take()
will pull all records, and then get the top N number of records OR will it behave as expected and retrieve only the N number of records directly
See Return Or Skip Elements in a Sequence.
Take(N)
will addTOP N
to your SQL and only retrieveN
records.For example (using my own SQL Server 2014 with EF 6.1):
This LINQ:
Generates this SQL:
Use the SQL Profiler (if you're using SQL Server) if you want to be sure what SQL your LINQ is generating. This is always a good practice with any LINQ you write.