Asp.Net内存缓存会自动为子对象设置null

时间:2019-04-11 09:23:51

标签: c# asp.net entity-framework model-view-controller memorycache

我正在使用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; }
}

0 个答案:

没有答案