缓存EF Poco对象不好
本文关键字:对象 Poco EF 缓存 | 更新日期: 2023-09-27 18:28:38
直接使用MemoryCache缓存EF Poco对象是一种好的做法吗?如果有的话,缺点是什么?
例如,我创建了一个名为类别的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类本身?
缓存昂贵的数据库调用的结果没有错。只要确保这些对象被急切地初始化,这样以后当你试图从缓存中读取它们时,它们就不需要打开DbContext了。如果你还没有完全初始化存储在缓存中的对象,EF的延迟加载可能会让你头疼。
还要确保在更新数据时有一个良好的缓存驱逐策略。使用内存缓存,如果您在web场中运行应用程序,事情可能会变得非常、非常、非常棘手。