2

この質問を見つけました MVCアプリケーションでデータをキャッシュする方法 そして、このメソッドを IQueryable データで使用できるかどうか疑問に思っています。

    Public Function GetUsers() As IQueryable(Of User) Implements IUserRepository.GetUsers 
        Dim users = (From u In dc.Users 
                    Select u) 
        Return users.AsQueryable 
    End Function 

これに変更できますか

    Public Function GetUsers() As IQueryable(Of User) Implements IUserRepository.GetUsers 
       Dim users = Cache("users")
       If users Is Nothing Then
           users = (From u In dc.Users 
                           Select u) 
           Cache("users") = users
       End If

       Return users.AsQueryable
    End Function
4

1 に答える 1

2

はい、できますが、(dc が linq to sql データ コンテキストであると仮定すると) IQueryable はデータのコレクションではなく、後で実行されるストアド クエリであるため、目的の効果は得られません。 IList などを保存する場合、必要に応じて IQueryable として返すこともできますが、他の人にとっては混乱を招く可能性があります。

キャッシュする前に ToList() を使用してください。

于 2010-08-09T22:57:19.180 に答える