频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

.Net 缓存代理类 的初步考虑

来源:vlan9.com 作者: 出处:巧巧读书 2006-03-14 进入讨论组

  EntityData为实体数据类

我们这里将实体数据进行缓存,缓存方法是

//从Web.Config取得对缓存过期的设置

ICacheItemExpiration[] ice=ExpireTerm.GetExpirationPolicy();

//获得缓冲对象

CacheManager cm=CacheManager.GetCacheManager();

存储

cm.Add(EntityKeyCreator.CreateKey(entity),entity,ice,CacheItemPriority.Normal,null);

此类可以做实体代理类

using Microsoft.ApplicationBlocks.Cache;

/// <summary>

/// 缓冲实体

/// </summary>

/// <param name="entity">实体数据</param>

public static void CacheEntity(EntityData entity)

{

if(entity.IsEmpty)

return;

ICacheItemExpiration[] ice=ExpireTerm.GetExpirationPolicy();

//获得缓冲对象

CacheManager cm=CacheManager.GetCacheManager();

//存储

cm.Add(ExpireTerm.CreateKey(entity),entity,ice,CacheItemPriority.Normal,null);

}

ExpireTerm.class

using Microsoft.ApplicationBlocks.Cache;

internal static ICacheItemExpiration[] GetExpirationPolicy()

{

if(Object.Equals(configSetting,null))

{

configSetting = (ICacheItemExpiration[])ConfigurationSettings.GetConfig("TopCoolExpireTerm");

}

return configSetting;

}

internal static string CreateKey(EntityData entity)

{

DataSet ds = new DataSet();

DataColumn[] keyColumns;

if(entity.Tables.Contains(entity.MainTableName))

keyColumns = entity.Tables[entity.MainTableName].PrimaryKey;

else

keyColumns = entity.CurrentTable.PrimaryKey;//

StringBuilder sb = new StringBuilder(entity.EntityTypeName);

//用:分隔实体类列名

for(int i=0;i<keyColumns.Length;i++)

{

sb.Append(":");

sb.Append(entity[keyColumns[i].ColumnName].ToString());

}

return sb.ToString();

}

注意:EntityData从DataSet 继承过来.观看地址: http://www.qqread.com/dotnet/u732882000.html 更多文章 更多内容请看.NET移动与嵌入式技术.NET开发手册.NET基础介绍专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章