Dotconnect for mysql might have this feature, but I don't know about the free version.
Otherwise you could just invoke the mysqldump utility and do something like this:
public void DumpMySQLDb(string user, string password, string database, string outputFile) {
var commandLine = string.Format("mysqldump --user={1}--password={2} --hex-blob --databases {3}",
user, password, database)
var process = new Process();
process.StartInfo = new ProcessStartInfo {
FileName = "cmd",
Arguments = string.Format( "/c \"{0}\" > {1}", commandLine, outputFile )
};
process.Start();
}