使用linq遍历大型DB表
本文关键字:DB 大型 遍历 linq 使用 | 更新日期: 2023-09-27 18:07:58
我有两个表:Foo
和Bar
。对于Foo
中的每一行,我现在想在Bar
中添加一行,引用各自的Foo
记录。Foo
可能包含数百万条记录。
通常这个答案是完美的:linq到sql -遍历表数据并设置值。但是,正如它在锡罐上所说的,对于大型表,使用以下行并不是特别理想。
List<User> users = dc.Users.ToList();
因为在List<>
中缓存整个表是不工作的,我有什么其他的选择?例如,是否有一种优雅的方式来"翻页"记录?因为我非常确定这是一个相对常见的问题,所以我认为很可能也有一个最佳实践。
你说的是几百万行数据,那么Linq不是你的朋友。
考虑使用存储过程,如果您愿意,也可以使用DbContext.ExecuteCommand
。
您可以使用.Skip()
和.Take()
方法处理预定义的批处理。另一件要考虑的事情是使用触发器,这样您就完全不需要担心第二个表了。