2012-11-15 3 views
0

프로젝트에서 일반 저장소를 구현했거나 현재이 저장소를 통해 특정 레코드에 액세스하는 방법을 고수하고 있습니다.일반 저장소에서 쿼리 된 행을 반환하는 중

샘플 데이터 : 정책 ID 1과 2는 역사 ID 2로 나올 수 있도록

ID | Policy ID  | History ID | Policy name 
1 | 1   | 0   | Test 
2 | 1   | 1   | Test 
3 | 2   | 0   | Test1 
4 | 2   | 1   | Test1 

내가 필요로하는 가장 큰 역사의 ID를 가지고있는 기록이다 (ID의 2, 4). 다음과 같이

내 일반 저장소 코드는 다음과 같습니다

public virtual IEnumerable<TEntity> Get(
      Expression<Func<TEntity, bool>> filter = null, 
      Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, 
      params Expression<Func<TEntity, object>>[] includeProperties) 
     { 
      IQueryable<TEntity> query = dbSet; 

      if (filter != null) 
      { 
       query = query.Where(filter); 
      } 

      foreach (var includeProperty in includeProperties) 
      { 
       query = query.Include(includeProperty); 
      } 

      if (orderBy != null) 
      { 
       return orderBy(query).ToList(); 
      } 
      else 
      { 
       return query.ToList(); 
      } 
     } 

을 지금, 나는이 기능에 필터 매개 변수를 사용되어야한다는 것을 이해하지만, 어떻게 내 시나리오에서, 심지어는 가능하다? 그룹화 방법을 사용해야 할 것 같아요. (전혀 도움이된다면) 호출에 대한

내 코드는 다음과 같습니다 사전에

var policies = _policy.Get(); 

감사합니다!

답변

0

나는 그룹화와 같은 특정 linq 항목을 수행하기 전에 일반 유형을 알아야한다고 생각합니다. 예를 들어 유형을 모르는 경우 그룹화 할 속성을 지정할 수 없습니다.

관련 문제