제네릭에 상당히 익숙해 져서 다음 문제에 대해 누군가 설명 할 수 있는지 궁금합니다. ASP.NET MVC 애플리케이션의 거의 모든 컨트롤러에서 사용자가 특정 필터링 기준을 지정한 위치에서 JqGrid를 채우기 위해 필터링 된 목록을 반환해야합니다. 각 컨트롤러 목록 메서드는 다른 IQueryable 목록을 반환하므로이를 처리 할 일반 메서드를 만드는 방법을 설정했습니다.형식 인수를 사용에서 유추 할 수 없습니다
필자가 만든 메서드를 만들면서 특정 컨트롤러에 정의했습니다. 컴파일 된 모든 것이 예상 한 결과를 얻었습니다. 모든 컨트롤러에서이 메서드를 호출하기를 원하기 때문에 단순히 다른 정적 클래스를 만들 수 있다고 가정하고 메서드를 넣은 다음 모든 메서드에서 해당 메서드를 호출합니다. 방법 System.Linq.Queryable.Where<TSource>(System.Linq.IQueryable<TSource>, System.Linq.Expressions.Expression<System.Func<TSource,bool>>)
에 대한
유형의 인수에서 추론 할 수 없습니다 컨트롤러 그게 전부가 호출하는 것보다 내가 다른 곳에서는 다른 방법을 이동하려고한다면, 컴파일러는 다음과 같은 오류와 방법의 마지막 줄에 대해 불평 사용법. 형식 인수를 명시 적으로 지정하십시오.
public static IQueryable<T> FilteredList<T>(IQueryable<T> list, string filters)
{
var qb = new QueryBuilder<T>();
var whereClause = qb.BuildWhereClause(filters);
return list.Where(whereClause);
}
내가 잘못된거야 어디 사람이 나에게 설명 할 수 list<T>.Where(whereClause)
및 list.Where<T>(whereClause)
및 거의 모든 다른 조합을 시도했습니다.
qb.BuildWhereClause는 무엇을 반환합니까? 표현>? –
'Where'이 효과가 있다고 생각할 것입니다. –
Joren
' (T)'를 사용하면 어떤 오류 메시지가 나타 납니까? 또한'whereClause'의 정확한 실제 유형은 무엇입니까? –