2011-06-17 48 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

相關問題