在此方案中可以使用哪种类型的缓存

时间:2012-03-21 07:58:21

标签: c# asp.net .net json caching

在我的ASP.net Web表单应用程序中。

我的 Timetable.aspx页面根据参数 JSON 格式从 Timetable.aspx.cs 的WebMethod请求数据> GroupId ,而Timetable.aspx.cs从 TimeTableBl.cs 获取数据,该数据从 TimeTableDataLayer.cs 获取数据并调用存储的proc usp_get_TimeTableByGroupId

每次从数据库中获取时间表都是一项非常资源化的任务,应该在某个级别进行缓存。

所以基本上我只想了解这种适当方法的概述。

在Businesslogic Layer级别通过创建时间表的Hashmap,如果某人已经请求了时间表,则使用key作为GroupId进行缓存,然后将对应于该特定时间表呈现相同的JSON,否则将从DB获取新的时间表。第一次插入Hashmap,然后呈现为JSON字符串。 当我尝试更新另一个线程同时使用的hashmap中的特定时间表对象时,这可能会有风险。

那么可以解决这个问题。

此处的时间表是期间的集合。 期间包含以下属性。

List<Periods> TimeTable =  new List<Periods>();

class Period
{
    int Id;
    DateTime StartTime;
    DateTime EndTime;
    tinyint Weekday;

    int RoomId;
    string RoomNo;//alphanumeric

    int facultyId;
    string FacultyName;

    int subjectId;
    string SubjectName;
}

0 个答案:

没有答案