Dynamic LINQ: когда мешает строгая типизация

31.10.2009 11:18 / Артём Волк / 1212 просмотров / ...

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");