2011-06-17 51 views
1

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

说真的,我有一个EntityQuery和一个属性的名称。我只需要拨打OrderBy,只需输入房产的名称即可。我怎样才能做到这一点?反射给了我以下异常:

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

回答

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

+0

我得试试这个。 – Jordan

相关问题