我正在使用EF对象,创建了与Entity类相同的新类,并将所有数据(包括子对象)存储在内存缓存中
当我在插入时读取内存缓存时,有时会返回子对象null,这会引发很多错误。
我以前是直接将实体对象存储在缓存中,现在我已经创建了实体类的副本并将新类存储在缓存中(子类仍然是实体对象)
这就是我写缓存的方式
public static void Insert(string Key, object Value, DateTime Expiration)
{
HttpRuntime.Cache.Insert(Key, Value, null, Expiration, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null);
}
这就是我读取缓存的方式
public static object Item(string Key)
{
return HttpRuntime.Cache.Get(Key);
}
var cacheProductDetail = ((CacheProductDetail)CacheManager.Item(key));
我可以获取Id和ProductGenericId,但我将ProductGeneric设置为null(这仅在同时读取/写入缓存时发生)
public class CacheProductDetail
{
public virtual int Id { get; set; }
public virtual Nullable<int> ProductGenericId { get; set; }
public virtual ProductGeneric ProductGeneric { get; set; }
}