如何缓存IQueryable对象?

Nic*_*ick 4 linq asp.net caching iqueryable

我有这个方法返回'UserStatus'表中所有行的Linq-to-SQL查询:

public IQueryable<BLL.Entity.UserStatus> GetAll()
{
    var query = from e in _SelectDataContext.UserStatus
                select new BLL.Entity.UserStatus
                {
                    UserStatusId = e.UserStatusId,
                    Enum = e.Enum,
                    Name = e.Name
                };

    return query;
}
Run Code Online (Sandbox Code Playgroud)

它只是一个几乎不会改变的查找表,所以我想缓存结果.我可以将它转换为a List<>并缓存它,但我更愿意返回一个IQueryable对象,因为类中的其他方法依赖于它.有人可以帮忙吗?谢谢.

Ali*_*söz 7

可能query.ToList().AsQueryable()是你的解决方案?不是最好的一个.