2013-10-17 2 views
0

이상한 문제가 있습니다. System.Linq.Dynamic 클래스를 사용하여 개체 목록을 쿼리하는 작은 메서드를 작성하고 있습니다. 내 문제가 동적 네임 스페이스에 있다고 생각하지 마십시오. 어떤 이유로 GroupBy와 OrderByDescending을 찾을 수 없습니다. 나는 이미 System.Linq에 대한 참조를 가지고 있는데, 이것은 처음에 이것을 일으켰을 것이라고 생각했다 ... 이상하게도 OrderBy와 다른 Linq 메소드를 찾는다. 내 코드는 아래에있다.'System.Linq.IQueryable'에 'GroupBy'에 대한 정의가 없습니다.

using System; 
using System.Collections.Generic; 
using System.Linq.Dynamic; 
using System.Linq; 
using System.Web; 

namespace MvcTemplate.jrSite.Core 
{ 
    public static class DynamicQuery 
    { 
     public static IQueryable Query(IQueryable items, string where, string select, string groupby, string orderby, string orderbydesc, int take) 
     { 
      var ret = items; 

      if (where != null && where.Length != 0) 
      { 
       ret = ret.Where(where); 
      } 

      if (select != null && select.Length != 0) 
      { 
       ret = ret.Select(select); 
      } 

      if (groupby != null && groupby.Length != 0) 
      { 
       ret = ret.GroupBy(groupby); 
      } 

      if (orderby != null && orderby.Length != 0) 
      { 
       ret = ret.OrderBy(orderby); 
      } 

      if (orderbydesc != null && orderbydesc.Length != 0) 
      { 
       ret = ret.OrderByDescending(orderbydesc); 
      } 

      return ret; 
     } 
    } 
} 

답변

0

나는 System.Linq.Dynamic 프로젝트를 사용한다고 가정합니다. 메소드가 존재하지 않기 때문에 메소드를 찾을 수 없습니다.

1) GROUPBY 폼 System.Linq.Dynamic는 :

public static IQueryable GroupBy(this IQueryable source, 
    string keySelector, string elementSelector, params object[] values) { 

이 방법은 세 가지 매개 변수를 필요로하고 코드는 두 제공합니다 - 당신이 elementSelector을 제공해야합니다.

2) 방법 OrderByDescending은 해당 라이브러리의 소스에 선언되어 있지 않습니다. System.Linq은 일반용이 아닌 IQueryable을 사용하는 중 도움이되지 않습니다. 모든 확장 메소드는 강력한 유형의 u 리에 만 제공됩니다.

+0

많은 감사를드립니다. –