Following section demonstrates deletion with chunks.
		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");
		}
    
Delete operation is always a problem for the large records. But you can break the large delete operation into chunks. cTZXMe