2017-05-31 77 views
-1

我有一个WEB API(VS 2013)项目,它在缓存(HTTPRuntime.Cache)中检索13百万行。C#内存缓存发现数据有1300万行

的内存对象伯爵说,在缓存对象13M行,但是当我发出命令

cacheObj.OrderByDescending(o => o.ID).Where(w => w.ID == 1111111).Select(s => s).ToList(); 

则返回0数据。我检查了Oracle数据库并显示记录。此外,如果我尝试找到另一个ID(例如1234567),我会收回有效数据。我有一种感觉缓存它可能是缓存大小。

任何线索可能发生了什么?谢谢

+0

你需要为此发布一些代码。您如何以及为什么确定特定的ID应该在缓存中? –

+0

你有什么理由说在框架中有什么不起作用,而不是在你的应用程序或逻辑中起作用?不是说它会改变结果,但你为什么要订购13M行,那么过滤器?你为什么选择(s => s)?如果你做cacheObj.Count(),结果如何? 13M? – Tipx

+0

为什么不只是'cacheObj.FirstOrDefault(x => x.w.ID == 1111111).ToList()'? –

回答

0

谢谢大家的意见。 Tipx,cacheObj.Count()返回13M。 Erik Erik Funkenbusch,我试过你的方法调用,它返回NULL。我现在尝试的是将13M分解成每个500000的更小的缓存,现在查询每个缓存返回预期的结果。此外,我需要为每个缓存创建新的上下文对象,或者结果仍然为0.再次感谢帮助!

+0

基本上我的数据位于其中一个缓存中,我查询每个缓存直到找到所需的数据 –