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 Nto your SQL and only retrieveNrecords.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.