PDA

View Full Version : سوال: چرا Caching کار نمی کند؟



hastiam
سه شنبه 19 شهریور 1392, 14:48 عصر
سلام من تو پروژه ام چون از جدول اطلاعات کالا زیاد استفاده می کردم از caching استفاده کردم به این صورت که یک کلاس به نام CachHelper ایجاد کردم و متدهای زیر رو توش نوشتم :


public static Cache Cache
{
get { return HttpContext.Current.Cache; }
}

public static void RefreshCacheData(string key, object obj)
{
Cache.Remove(key);
}

public static void CacheData(string key, object obj)
{
Cache.Insert(key, obj, null, DateTime.Now.AddHours(2), TimeSpan.Zero);
}

و جایی که لیست کالاها رو صدا می زنم به صورت زیر استفاده کردم :


string key = "Goods";

if (CacheHelper.Cache["Goods"] != null)
{
return context.Goods.SqlQuery(CacheHelper.Cache["Goods"].ToString()).AsQueryable<Goods>();
}
else
{
List<RowLevelPermission> list = RowLevelSecurityHelper.GetPermissions();

string sqlQuery = "select * from Goods where id in (Select GoodsId from Warehousegoods where ";
for (int i = 0; i < list.Count; i++)
{
sqlQuery += "(DetailsID = '" + list[i].WarehouseId + "' AND GoodsTypeID='" + list[i].GoodsTypeId + "')";
if (i < list.Count - 1)
sqlQuery += " OR ";
}
sqlQuery += ")";

var objgoods = context.Goods.SqlQuery(sqlQuery).AsQueryable<Goods>();
CacheHelper.CacheData(key, objgoods);
return context.Goods.SqlQuery(CacheHelper.Cache["Goods"].ToString()).AsQueryable<Goods>();
}

به نظرم برنامه ای که نوشتم خیلی منتطقیه اما نمیدونم چرا کار نمیکنه؟!! هیچ خطایی نداره فقط سرعت لود اطلاعات هیچ فرقی نکرده.
لطفا راهنماییم کنید که کجای برنامه ام ایراد داره؟ :افسرده::افسرده::افسرده:
در ضمن طرز استفاده از caching رو از تاپیک زیر یاد گرفتم:
http://barnamenevis.org/showthread.php?183026-%DA%AF%D9%81%D8%AA%DA%AF%D9%88-%D9%88-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-asp.net-Caching&highlight=cach
چون من تا قبل از خوندن این تاپیک نمیدونستم چطور از Caching استفاده کنم.

hastiam
شنبه 23 شهریور 1392, 07:57 صبح
کسی جواب سوالمو نمیدونه؟!! :ناراحت: