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.