2012-05-28 5 views
1

두 가지 방법 중 하나의 LINQ 쿼리를 공유하는 방법이 있습니까? 나는 데이터베이스에서 검색 결과를 얻는 꽤 긴 LINQ 쿼리를 가지고 있는데,이 쿼리를 사용하여 결과 (일종의리스트 <>) - 첫 번째 메소드를 얻고 그 카운트 (int) - 두 번째 메소드를 얻는다. 이 쿼리를 두 개의 별도 메서드에서 복사하고 검색 결과 및 레코드 수 (이 쿼리에서 반환)가 포함 된 사용자 지정 클래스 개체를 반환 할 수 없습니다. 그래서 내가하고 싶은 일은 LINQ 쿼리 정의 (또는 이와 비슷한 것?)를 얻는 것이지만 다른 메서드에서 사용할 수있는 결과 집합이 아닙니다. 어쩌면 그렇게 할 또 다른 좋은 방법이 있습니다. 이 행해져 Yout 도움을 주셔서 감사;)이 같은두 메서드간에 하나의 LINQ 쿼리를 공유하는 방법?

코드의 모양을

public ??? GetSearchResultsQuery(SearchRequest search_request) 
{ 
    var queryGetSearchResults = .... 
    return queryGetSearchResults; 
} 

public int GetSearchResultsCount(SearchRequest search_request) 
{ 
    return GetSearchResultsQuery(search_request).Count(); 
} 

public List<SearchResults> GetSearchResults(SearchRequest search_request) 
{ 
return GetSearchResultsQuery(search_request).Skip(search_request.startRowIndex).Take(search_request.maximumRows).ToList(); 
} 
+2

당신은 여기 그냥 메모를 – dougajmcdonald

+1

된 IQueryable을 반환 할 것가, 비주얼 스튜디오는 대부분 var''의 유형에 인텔리을 제공합니다 그 위에 마우스를 올려 놓는 경우가 있습니다. –

답변

3
public IQueryable<SearchedForType> GetSearchResultsQuery(SearchRequest search_request) 
{ 
    var queryGetSearchResults = context.SearchedForTypes.Where(x => x == search_request.X); 
    ... build up your search query ... 
    return queryGetSearchResults; 
} 
+0

이것은 내가 필요한 것입니다. 감사! – user1421984

관련 문제