有没有办法使用属性名称字符串对EntityQuery进行排序?

时间:2011-06-17 15:57:42

标签: silverlight wcf-ria-services

有没有办法使用属性名称字符串对EntityQuery进行排序?

说真的,我有一个EntityQuery和一个属性的名字。我只需要使用属性的名称来调用OrderBy。我怎样才能做到这一点?反思给了我以下例外:

  

System.NotSupportedException:方法   类型'GetValue'   'System.Reflection.PropertyInfo'是   无法访问。只有方法   原始类型,System.Math和   支持System.Convert   查询。

1 个答案:

答案 0 :(得分:0)

你必须像这样构建一个表达式树。

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,这不是泛型的例子。