【发布时间】:2015-12-31 13:04:34
【问题描述】:
直接使用 MemoryCache 缓存 EF Poco 对象是一种好习惯吗?如果有,有什么缺点?
例如,我创建了一个名为 category 的 Poco 类
public partial class Category
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
然后我将类别列表添加到缓存对象中,该对象是 MemoryCache 的类型,如下所示
protected ObjectCache Cache
{
get
{
return MemoryCache.Default;
}
}
List<Category> data= getCategories();
Cache.Add(new CacheItem(key, data), policy);
或者是否建议在两者之间使用另一个转换器类并缓存这个类而不是 Poco 类本身?
【问题讨论】:
-
为什么要缓存 POCO 对象? linq 延迟执行会让为您的数据存储多个位置的想法非常不舒服 - linq 让您始终在需要时正确获取数据,同时缓存旧条目并可能模拟您的 DbContext。
-
例如,我想要缓存的数据,就像我的示例中的类别一样,不会经常更改。一个月内可能有 1 个条目。因此,如果我不想更新,请删除但只阅读。我什至可以每周刷新一次缓存。这些数据我认为是永久缓存的数据。
标签: c# entity-framework caching memorycache