如何获取 LINQ 缓存对象的对象字段



在Application_Start中,我缓存了一些通过LINQ到SQL获得的对象。

    objDataContext objBetting = new objDataContext();
    var testObjects= from element in objBetting.Elements
                   select new { element.attribute };
    HttpRuntime.Cache["test"] = testObjects;

在某些页面上,我想读取值testObject.attribute。我只能:

   var objS = (IQueryable)Cache["test"];

我缓存匿名类型的对象,如何获取属性,也许这是更好的问题。


好的,我将创建并填充System.Data.Linq.Table类型的对象,并将其缓存为能够转换。

不要缓存可查询对象。它们是延迟计算的,并且很有可能 (1) 当您读取缓存时上下文不存在,因此枚举它将死亡,以及 (2) 它不可序列化,因此它不适用于分布式缓存。

如果必须缓存某些内容的列表,请将其放入基元类型的数组中。

HttpRuntime.Cache["test"] = testObject.ToList();
IList<string> attributes = (IList<string>)Cache["test"];

相关内容

  • 没有找到相关文章

最新更新