Dynamic LINQ: когда мешает строгая типизация
LINQ очень удобен прежде всего тем, что можно работать с типизированными данными. Но иногда это мешает, например, когда нужно сделать сортировку, зная только имя поля: типичное требование для реализации таблицы данных с сортировкой. Ситуация усложняется, когда сортировка идёт по полям связанных сущностей.
Первым решением может быть написание собственного оператора LINQ (другое название predicate method, задача, кстати, нетривиальная и не решает проблему для связанных сущностей), а вторым — использование Dynamic LINQ.
Тогда вместо:
var result = from s in Db.Snippets
order by s.Title ascending
select s;
Можно сделать так:
var result = (from s in Db.Snippets select s).OrderBy("Title", "ascending");
