2016-07-05 3 views
0

내가이 컴파일 오류를 얻을 매개 변수로 사용되는 참조 형식이어야합니다유형은

일반에 그것을 매개 변수 'TEntity'을 사용하려면 참조 형식이어야 유형 'TEntiy' 'DbSet'을 입력하십시오.

private IQueryable<TEntity> Search<Expression<Func<TEntity, bool>> predicate, params Expression<Func<TEntity, object>>[] include) 
{ 
    var dbSet = dataContext.Set<TEntity>(); 

    var set = include.Aggregate<Expression<Func<TEntity, object>>, IQueryable<TEntity>> 
       (dbSet, (current, expression) => current.Include(expression)); 

    return set.Where(predicate); 
} 

이 문제를 해결하는 방법이 있나요 :이 방법에 사용

?

+0

'TEntity'에 대한 클래스 정의를 게시 할 수 있습니까? – Rohit

+1

제네릭 형식 제약 조건'where TEntity : class'를 메서드의 서명에 추가하십시오. –

+0

@ heijp06 그것은 작동합니다! 답변을 추가하십시오. –

답변

0

DbSet<TEntity> 유형의 경우 해당 유형 인수가 참조 유형이어야합니다.

private IQueryable<TEntity> Search<TEntity>(...) where TEntity : class 
{ 
    ... 
}