Debe declarar DbFactoryProvider en un archivo de configuración (Web.config, Machine.config, etc.). Aquí hay una muestra que saqué de un proyecto usando 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>
También prefiero declararlos en los archivos de configuración de nivel de aplicación y hacer que mis aplicaciones usen la copia local del ensamblado. Esto ayuda con la portabilidad ya que no podemos garantizar que el proveedor externo esté disponible en GAC.