var orderIds = new List<long>();
foreach(var _order in list)
{
orderIds.Add(_order.OrderId);
}
orderIds = orderIds.Distinct().ToList();
// 分批处理以避免一次加载太多数据到内存
int batchSize = 2000; // 可根据实际情况调整大小
int numberOfBatches = (int)Math.Ceiling(orderIds.Count / (double)batchSize);
var orderStatus = new List<object>();
for (int i = 0; i < numberOfBatches; i++)
{
List<long> batchIds = orderIds.Skip(i * batchSize).Take(batchSize).ToList();
//使用In里面的查询条件加索引更快
var batchOrders = _db.Queryable<Order>()
.In(o => o.OrderId, batchIds)
.Select(it => new object
{
it.OrderId,
it.Status
})
.ToList();
orderStatus.AddRange(batchOrders);
}