2

2 つのメソッド間で 1 つの LINQ クエリを共有する方法はありますか? データベースから検索結果を取得する非常に長いLINQクエリがあり、このクエリを使用して結果を取得する必要があります(ある種のリスト<>)-最初のメソッド-およびそのカウント(int)を取得する-2番目のメソッド-。このクエリを 2 つの別々のメソッドにコピーしたくありません。また、検索結果とレコード数 (このクエリによって返される) を含むカスタム クラス オブジェクトを返すこともできません。だから私がしたいのは、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(); 
}
4

1 に答える 1

4
public IQueryable<SearchedForType> GetSearchResultsQuery(SearchRequest search_request)
{
    var queryGetSearchResults = context.SearchedForTypes.Where(x => x == search_request.X);
    ... build up your search query ...
    return queryGetSearchResults;
} 
于 2012-05-28T15:39:17.057 に答える