2009-04-05 9 views
0

私は、次のLINQ 2 SQL拡張メソッドやろうとしている:はこれのIQueryable <T>拡張メソッドはSQLへのサポートの翻訳を持っていない:(

Method 'Boolean Contains(System.String)' has no supported translation to SQL.

public static PagedList<T> ToPagedListOrNull<T>(this IQueryable<T> value, 
               int index, 
               int pageSize) 
    { 
     return value.Count() == 0 
     ? null 
     : (value is PagedList<T> ? value as PagedList<T> : 
            new PagedList<T>(value, index, pageSize)); 
    } 

を私は次のエラーを取得しておきます

value.Count() == 0ビットでエラーが発生していると思います。

これがなぜか教えてください。

答えて

1

あなたの質問は間違っています。言い換えれば '値'です。

これを個別にテストして正常に動作することを確認してください。 )

+0

申し訳ありませんが - 私は理解していません:(あなたは私が '値'オブジェクトを最初にテストする必要があると言っていますか?何のためにテスト? –

+0

単体テストを書き、value.Count()== 0をテストします。私は、クエリに問題がある可能性があり、拡張メソッドまたはその使用法ではないと言っています。 – leppie

+0

+1 @Pure leppieが正しいです、明らかにlinqクエリ自体に問題があります。 Count()を呼び出します。 – eglasius

関連する問題