日期:2014-05-20  浏览次数:20603 次

linq海量数据
我用sql server 2005,里面有几十万行记录,不能一下把它们都读入内存,所以我想每次读取几条逐条处理,直至处理完全部记录,请问有什么好的方法。

------解决方案--------------------
只要不使用非迟延操作符 如TOLIST等
数据就不会加载到内存
GOOGLE: LINQ 延迟查询
------解决方案--------------------
当然利用 SKIP()结合 Take()方法也是可以达到你的需求的
------解决方案--------------------
很明显,你可以使用 Linq To SQL,以便让数据直接在数据库系统内被处理。

或者使用存储过程。
------解决方案--------------------
C# code
    var q = (
        from c in db.Customers
        orderby c.ContactName
        select c)
        .Skip(50)
        .Take(10);

    ObjectDumper.Write(q);