Our working set
Let us suppose our model is
[Table("DoctorProfile")] public class DoctorProfile { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int ID { get; set; } // name of a doctor public String Name { get; set; } // fees of a doctor public int Fees { get; set; } }
In the following discussion we have assumed that
- that we have already configured our database
- that our
DbContext
instance is_ctx
- that our
DbSet<DoctorProfile>
is calledDoctors
Video Explanation
Please watch the following youtube video:
How to sort in ascending order
Let us suppose that we have to sort our records on the basis of ID starting with the smallest one - in ascending order.
// the following code selects // the records and then sorts // the selection by ID ascending var doctors = _ctx.Doctors .Where(f => f.Fees > 300) .OrderBy(r => r.ID) .ToList();
How to sort in descending order
Let us suppose that we have to sort our records on the basis of ID starting with the largest one - in descending order.
// the following code selects // the records and then sorts // the selection by ID descending var doctors = _ctx.Doctors .Where(f => f.Fees > 300) .OrderByDescending(r => r.ID) .ToList();
How to sort on multiple keys
Let us suppose that we have to sort our records on the basis of ID
ascending, followed by fees
descending.
// the following code selects // the records and then sorts // the selected records by ID // then sorts by fees descending var doctors = _ctx.Doctors .Where(f => f.Fees > 300) .OrderBy(r => r.ID) .ThenByDescending(f => f.Fees) .ToList();
OrderBy should be before or after Where?
If OrderBy
is placed before Where
, then the whole table is first sorted and then the where clause operates. It might be time consuming if millions of records have to be first sorted and then filtered.
If OrderBy
is placed after Where
, then selection/filtering is the first step, and sorting the second. Obviously, sorting takes place on a smaller set of records, and could, therefore be faster.
If you keep the above in mind then you can write an optimal code.
This Blog Post/Article "(C# ASP.NET Core LINQ) How to Sort Records" by Parveen is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.