如何缓存LINQ to SQL结果?

时间:2011-06-29 11:02:45

标签: linq-to-sql caching

我正在使用LINQ to SQL来调用某些报告存储过程。

每个存储过程都返回一个接受一些输入参数的类,例如:

public partial class csp_WeekCommencingListResult
{        
    public static IEnumerable<csp_WeekCommencingListResult> GetAll(int? masterTrackingGroupId)
    {
        using (var dataContext = OscaDataContext.CreateWithCustomTimeOut())
        {
            return dataContext
                .csp_WeekCommencingList(masterTrackingGroupId)
                .ToList();
        }
    }
}

如何缓存传递参数的存储过程的结果?

例如,当1传递给此存储过程时,其结果应缓存一天。

有什么想法?我可以使用任何框架吗?或者我必须使用.NET Cache对象为每个存储过程构建自己的自定义缓存管理器?

谢谢,

1 个答案:

答案 0 :(得分:0)

您应该在更高级别添加缓存,例如在调用此代码的代码中。

尝试找出适用于您的项目的良好缓存策略。

当谈到缓存管理器时,我通常使用来自 Microsoft EnterpriseLibrary Caching ICacheManager,我将属性注入了一些依赖注入框架,如Castle或StructureMap。这样我可以为不同的环境(dev,test,prod等)运行不同的配置。