I have used a product called Alubrite on recommendation from a friend
(other suppliers are available - I got mine from a local oil supplier)
Seems expensive, but it is used at a substantial dilution (5% IIRC) so a 5l can lasts a very long time.
Great "as-is" on sand castings (like BMW crankcases0 , but leaves polished surfaces dull. Not too hard to polish back up,though. Thoroughly degrease the part, wash with the dilute Alubrite, scrub in with a stiff bristle brush or Scotchbrite pad while wet (wear gloves !) - repeat until clean then rinse off with clean water.