这就是我正在使用的:
我正在尝试使用从Nuget软件包管理器安装的EntityFramework.Cache
实现二级缓存。至此,查询结果已被缓存。我已经了解了到期时间和滑动时间,但是我们必须为其设置一个特定的时间。现在,我想做的是在更新数据库(SQL Server 2008)时清除二级缓存。
我的代码如下:
[HttpGet]
public IHttpActionResult Get(string id)
{
try
{
var viewModels = new List<LikeProduct>();
using (TestDatabaseEntities db = new TestDatabaseEntities())
{
var res = db.LikeProducts.Where(xctitemprice => xctitemprice.OrigItem == id).ToList();
foreach (var model in res)
{
var todoViewModel = new LikeProduct
{
ItemId = model.ItemId,
LikeCounter = model.LikeCounter,
OrigItem = model.OrigItem
};
viewModels.Add(todoViewModel);
}
return Json(viewModels);
}
}
catch
{
return InternalServerError();
}
}
是否可以在此处添加一些更改,这些更改将首先检查查询结果是否已更新。如果是,则清除缓存并从数据库获取结果,否则返回缓存的数据。
如果问题不清楚,我们深表歉意。如果需要其他信息,请告诉我。
先谢谢了。 :)