Есть ли способ сортировки EntityQuery, используя строки имени свойства? - PullRequest
1 голос
/ 17 июня 2011

Есть ли способ сортировки EntityQuery с использованием строк с именами свойств?

Серьезно, у меня есть EntityQuery и название объекта.Мне нужно позвонить OrderBy только с именем свойства.Как я могу это сделать?Отражение дает мне следующее исключение:

System.NotSupportedException: метод 'GetValue' для типа 'System.Reflection.PropertyInfo' недоступен.В методах поддерживаются только методы примитивных типов, System.Math и System.Convert.

1 Ответ

0 голосов
/ 17 июня 2011

Вы должны построить дерево выражений следующим образом.

Type entityType = typeof(T);
var px = Expression.Parameter(entityType,"x");
var ex = Expression.Property(px, propertyName);

var lx = Expression.Lambda<Expression<Func<T>>(ex,px);

var q //.. Entity Query

q = q.OrderBy(lx);

Вы должны заменить T своим типом, это не пример обобщений.

...