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 继承过来. 
|