有没有办法使用属性名称字符串对EntityQuery
进行排序?
说真的,我有一个EntityQuery
和一个属性的名字。我只需要使用属性的名称来调用OrderBy
。我怎样才能做到这一点?反思给了我以下例外:
System.NotSupportedException:方法 类型'GetValue' 'System.Reflection.PropertyInfo'是 无法访问。只有方法 原始类型,System.Math和 支持System.Convert 查询。
答案 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,这不是泛型的例子。