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.