Microsoft Technologies based on the .NET software framework. Miscellaneous topics that do not fit into specific categories.
This can depend on how big each Students object is. If it's big then I would avoid pulling the entire entity out into memory. This could be as trivial as adding a .Select() after your .Where() to map out only the properties you need, or if the query is pulling out all the associated entities for each Students then depending on your data provider, you could look at ensuring that they're not also pulled into memory.
A good place to start would be to open SQL Profiler and have a look at the query created by your app. Make sure it's not generating an inefficient query & that it's taking advantage of the indices you have in place.
You can even grab the query and run it in SSMS to see its execution plan, in case you're missing an index.