我在C#中有一个长时间运行的进程,可以在10到200次的任何地方访问Sql表。当进程超过大约50次命中并且每次从同一个表中查询大于大约100,000行时,它将在此行引发系统内存异常,特别是在它将IQuery对象转换为List的底部:
var cht = from p in _db.TickerData
where p.Time >= Convert.ToDateTime(start) &&
p.Time <= Convert.ToDateTime(end)
orderby p.Time
select p;
_prices = cht.ToList(); < this is where the System.OutofMemoryException occurs >
如何防止此错误?
答案 0 :(得分:0)
我做了什么我只是让它返回一个IQueryable对象。它仍然是一个列表,但它的表现要好得多。