using(var exc = cn.Executer())
{
// Ids are being obtained for the records to be deleted...
var sql = Odb.SQL.Select(x => x.Fields(x[t0.OrderID]).From(t0).Top(100));
var ids = exc.Sql(sql).Map().ToList();
var tasks = new List();
var index = 0;
var chunk_size = 50;
int affected_rows = 0;
while (true)
{
var items = ids.Skip(index).Take(chunk_size);
if (items.Count() == 0) break;
var task = Task.Run(() => {
var query = Odb.SQL.Batch();
query.Delete(x => x.From(t1).Where(x[t1.OrderID].IN(items)));
query.Delete(x => x.From(t0).Where(x[t0.OrderID].IN(items)));
affected_rows += exc.Sql(query).NonQuery();
});
tasks.Add(task);
}
Task.WaitAll(tasks.ToArray());
Console.WriteLine("\n\n" + affected_rows + " row(s) affected.\n\n");
}
cTZXMe