I have the following query:
var query = db.Prog
.Where (a => a.Prog != "00000" && a.fn != "Koll")
.Select(a => new {a.Prog, a.MEfn})
.OrderByDescending(a => a.MEfn)
The query works fine but wondering if there are general rules on the order in which you write a Lambda linq query. Meaning, .Where comes before .Select, etc.
Can somebody enlighten me on the order in which LINQ needs to be written or best practices.
There isn’t a best practice on the order in which you write a LINQ query, it will depend on if you want to do your filtering first, or your projection. For example in your case, you are projecting to an anonymous type which doesn’t include the ‘fn’ property which your filter uses, so it wouldn’t be available to use in a where clause if your select was first.
A better practice would be to give your properties less cryptic names. Also, ‘fn’ doesn’t follow the PascalCase for property names, and if it’s a field then it probably shouldn’t be public.