快速业务通道

使用Project Velocity增强ASP.NET MVC应用程序

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
etrieveActivityTypes()
{
    var cacheKey = "activityTypes";

    // retrieve  activityTypes from Cache
    IEnumerable<ActivityType> data =  this.cacheProvider.Get(ReferenceDataCacheContainer, cacheKey) as  IEnumerable<ActivityType>;
    if (data != null)
    {
         return data;
    }

    // retrieve from  Repository
    data = this.activitiesRepository.RetrieveActivityTypes();
     this.cacheProvider.Add(ReferenceDataCacheContainer, cacheKey, data,  TimeSpan.FromMinutes(60));
    return data;
}

8.实现 RateActivity 方法。为此,复制 CachedActivitiesRepository.cs 类中的以下代码:

(代码片段 – 增强 PlanMyNight MVC 应用程序– CachedActivitiesRepository RataActivity)

C#

public void RateActivity(string activityId, byte  rating)
{
    // Remove the activity from cache since it''s invalid.
    this.cacheProvider.Remove(ActivityCacheContainer, activityId);

     this.activitiesRepository.RateActivity(activityId, rating);
}

注意:请 注意,RateActivity 与您实现的方法具有不同的行为。

RateActivity 从缓存中删除活动,随后 调用 ActivitiesRepository 的 RateActivity

方法。

这是因为缓存中的活动状态在评 级后将失效,因而必须删除。

9.实现 Search 方法。为此,复制 CachedActivitiesRepository.cs 类中的以下代码:

(代码片段 – 增强 PlanMyNight MVC 应用程序– CachedActivitiesRepository Search)

C#

public  PagingResult<Activity> Search(ActivitySearchCriteria criteria)
{
     var cacheKey = Serialize(criteria);

    // retrieve search results  from Cache
    PagingResult<Activity> data = this.cacheProvider.Get (SearchQueryCacheContainer, cacheKey) as PagingResult<Activity>;
    if  (data != null)
    {
        return data;
    }

    // retrieve from Repository
    data =  this.activitiesRepository.Search(criteria);
    this.cacheProvider.Add (SearchQueryCacheContainer, cacheKey, data, TimeSpan.FromMinutes(5));

     // add activities to cache
    foreach (var activity in data.Items)
     {
        if (!this.cacheProvider.HasKey(ActivityCacheContainer,  activity.Id))
        {
            this.cacheProvider.Add (ActivityCacheContainer, activity.Id, activity, TimeSpan.FromMinutes(15));
         }
    }

    return data;
}

注意:Search 方法将搜索条件序列化为一个键,并使用它检查所请求的搜索是否已

执行。

请注意,在从 ActivitiesRepository 中检索 PagingResult 之后,所检索到的活动将存储在 “Activity”已命名缓存中,以备未来请求之用。

要将搜索条件序列化为一个键,您 要创建一个方法,连接使用“|”分隔的 ActivitySearchCriteria 属性。

10.添加一 个名为 Serialize 的方法。为此,复制 CachedActivitiesRepository.cs 类中的以下代码

(代 码片段 – 增强 PlanMyNight MVC 应用程序– CachedActivitiesRepository Serialize)

C#

private static string Serialize(Activi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号