使用linq遍历大型DB表

本文关键字:DB 大型 遍历 linq 使用 | 更新日期: 2023-09-27 18:07:58

我有两个表:FooBar。对于Foo中的每一行,我现在想在Bar中添加一行,引用各自的Foo记录。Foo可能包含数百万条记录。

通常这个答案是完美的:linq到sql -遍历表数据并设置值。但是,正如它在锡罐上所说的,对于大型表,使用以下行并不是特别理想。

List<User> users = dc.Users.ToList();

因为在List<>中缓存整个表是不工作的,我有什么其他的选择?例如,是否有一种优雅的方式来"翻页"记录?因为我非常确定这是一个相对常见的问题,所以我认为很可能也有一个最佳实践。

使用linq遍历大型DB表

你说的是几百万行数据,那么Linq不是你的朋友。

考虑使用存储过程,如果您愿意,也可以使用DbContext.ExecuteCommand

您可以使用.Skip().Take()方法处理预定义的批处理。另一件要考虑的事情是使用触发器,这样您就完全不需要担心第二个表了。