I had this issue. My web role was obtaining the database connection string from the Web.config file (because the XSLT transformations work well). In effect I was passing the name of my connection string into my context's constructor, not the connection string itself.
My worker role was using Azure's configuration, using RoleEnvironment.GetConfigurationSettingValue()
to get the connection string and passing the connection string itself into the context's constructor. This worked in the emulator against a production database, but not in the Azure cloud itself.
My solution was to stop using the Azure configuration, and instead put the connection string into my App.config, and pass the name of the connection string into the context's constructor, like I was doing in the web role. This solved my problem and the worker role was able to connect to the database without any issues.
Of course, App.config files cannot have transformations out of the box, unlike Web.config files (because, hey, who'd need that?) so I had to follow the instructions here to make that happen.