2013-07-30 67 views
2

我正在寫一些代碼,將修改的表達式,它包含的子查詢會得到有序的兼容。上鍵入「可查詢」沒有泛型方法「排序依據」與提供的類型參數

我發現了一個類似的一段代碼在這裏SO:https://stackoverflow.com/a/1379693/509464 但它不是爲我工作 我也試圖尋找this答案,但我不能將其應用到我的一段代碼

上型「可查詢」沒有通用的方法「的OrderBy」是與所提供的類型的參數和參數兼容。如果方法是非泛型的,則不應提供類型參數。

  MethodCallExpression orderByCallExpression = Expression.Call(
        typeof(Queryable), 
        "OrderBy"/*Descending*/, 
        new Type[] { typeof(TSource), filterpart.OrderOverPropertyGetterValueType}, 
        navigationalProperty.Body, 
        filterpart.OrderOverPropertyGetter);        

我試圖找出其中的2個型參數或其它2個參數是造成此錯誤。

  • OrderOverPropertyGetterValueType只是typeof(DateTime)在這種情況下
  • TSource是一個實體類型(禮品)
  • navigationalProperty.Body包含{source.Gifts.AsQueryable()}與表達類型:System.Linq.Expressions.MethodCallExpression
  • filterpart.OrderOverPropertyGetter包含{g => g.Date}與表達type System.Linq.Expressions.Expression<System.Func<Gift,System.DateTime>>

我無能,如何診斷四個參數至極是不正確的,我想表達的類型之一可能是不正確......

回答

1

我的類型定義哪裏錯了,因爲錯誤提示。

的typeof(TSource)必須TYPEOF(TNav)因爲我們訂購source.Gifts。

+0

凡TNav在規定的?它是什麼? – drizzie

+0

請提供更詳細的答案。我有一個場景,需要使用簡單以及通過網格的導航屬性進行排序 –

相關問題