Bring a large saucepan of lightly salted water to the boil and cook the pasta for 10–12 minutes until just tender. Drain, return to the pan and toss with the oil.
Meanwhile, melt the butter in a large, heavy-based saucepan and cook the onion over a medium heat, stirring occasionally, for 5 minutes until softened. Add the flour and cook, stirring, for a few seconds. Remove from the heat and add the milk, a little at a time, blending well between each addition. Return to the heat, then bring to the boil, stirring constantly, cooking until thickened.
Stir in the mustards, crème fraîche, ham and parsley and heat for a further 1 minute until the sauce is piping hot but not boiling. Stir in the pasta and season with pepper.
Serve in warmed serving bowls with a simple rocket salad, if liked.