Você precisa declarar o DbFactoryProvider em um arquivo de configuração (Web.config, Machine.config, etc). Aqui está um exemplo que tirei de um projeto usando o MySQL:
<system.data> <DbProviderFactories> <remove invariant="MySql.Data.MySqlClient"/> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> </DbProviderFactories> </system.data>
Também prefiro declará-los nos arquivos de configuração no nível do aplicativo e fazer com que meus aplicativos usem a cópia local do assembly. Isso ajuda na portabilidade, pois não podemos garantir que o provedor de terceiros esteja disponível no GAC.