using System;
using System.Data;
using System.Collections.Generic;
using LTP.Common;
using Maticsoft.Model;
namespace Maticsoft.BLL
{
/// <summary>
/// 业务逻辑类Product 的摘要说明。
/// </summary>
public class Product
{
private readonly Maticsoft.DAL.Product dal=new Maticsoft.DAL.Product();
public Product()
{}
#region 成员方法
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string ProductId)
{
return dal.Exists(ProductId);
}
/// <summary>
/// 增加一条数据
/// </summary>
public void Add(Maticsoft.Model.Product model)
{
dal.Add(model);
}
/// <summary>
/// 更新一条数据
/// </summary>
public void Update(Maticsoft.Model.Product model)
{
dal.Update(model);
}
/// <summary>
/// 删除一条数据
/// </summary>
public void Delete(string ProductId)
{
dal.Delete(ProductId);
}
/// <summary>
/// 得到一个对象实体
/// </summary>
public Maticsoft.Model.Product GetModel(string ProductId)
{
return dal.GetModel(ProductId);
}
/// <summary>
/// 得到一个对象实体,从缓存中。
/// </summary>
public Maticsoft.Model.Product GetModelByCache(string ProductId)
{
string CacheKey = "ProductModel-" + ProductId;
object objModel = LTP.Common.DataCache.GetCache(CacheKey);
if (objModel == null) //判断缓存是否过期
{
try
{
objModel = dal.GetModel(ProductId);
if (objModel != null)
{
int ModelCache = LTP.Common.ConfigHelper.GetConfigInt("ModelCache");
LTP.Common.DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(ModelCache), TimeSpan.Zero);
}
}
catch{}
}
return (Maticsoft.Model.Product)objModel;
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string strWhere)
{
return dal.GetList(strWhere);
}
/// <summary>
/// 获得数据列表
/// </summary>
public List<Maticsoft.Model.Product> GetModelList(string strWhere)
{
DataSet ds = dal.GetList(strWhere);
List<Maticsoft.Model.Product> modelList = new List<Maticsoft.Model.Product>();
int rowsCount = ds.Tables[0].Rows.Count;
if (rowsCount > 0)
{
Maticsoft.Model.Product model;
for (int n = 0; n < rowsCount; n++)
{
model = new Maticsoft.Model.Product();
model.ProductId=ds.Tables[0].Rows[n]["ProductId"].ToString();
model.CategoryId=ds.Tables[0].Rows[n]["CategoryId"].ToString();
model.Name=ds.Tables[0].Rows[n]["Name"].ToString();
model.Descn=ds.Tables[0].Rows[n]["Descn"].ToString();
model.Image=ds.Tables[0].Rows[n]["Image"].ToString();
modelList.Add(model);
}
}
return modelList;
}
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetAllList()
{
return GetList("");
}
/// <summary>
/// 获得数据列表
/// </summary>
//public DataSet GetList(int PageSize,int PageIndex,string strWhere)
//{
//return dal.GetList(PageSize,PageIndex,strWhere);
//}
#endregion 成员方法
}
}
在所有model的业务层对应的BLL类中,都有一个getModelByCache(主键)的方法。
LTP.Common.DataCache类如下:
public class DataCache
{
// Methods
public DataCache(){}
public static object GetCache(string CacheKey)
{
return HttpRuntime.Cache[CacheKey];
}
public static void SetCache(string CacheKey, object objObject)
{
HttpRuntime.Cache.Insert(CacheKey, objObject);
}
public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)
{
HttpRuntime.Cache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration);
}
}
由于自动设定了缓存的过期时间,所以没有手动移除。
那么在页面如何访问,什么时候用缓存,什么时候不用?
另外sqldependency的设置该如何使用?