¿Usa un repositorio de EF con objetos de conexión personalizados?
Estoy atascado en EF 6 y la documentación es escasa, no se resuelve eso por un día ahora.
Intento usar Code First en un repositorio de base de datos que tenemos. Debido a la compleja inicialización Idebe uso mi propio método de fábrica para inicializar la subclase de contexto y yodebe poner mi propia conexión sql o hacer mi propia fábrica.
La siguiente inicialización de clase:
tenemos:
public class Repository : DbContext {
static string _connectionString;
static Repository() {
Database.SetInitializer<Repository>(null);
var type = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
_connectionString = ** method to get connection string**
}
public static Repository Create() {
SqlConnection connection = new SqlConnection(_connectionString);
connection.Open();
connection.BeginTransaction(IsolationLevel.ReadCommitted).Commit();
return new Repository(connection);
}
Lamentablemente, se ejecuta con la siguiente excepción en el primer intento de seleccionar alguna entidad:
No se puede determinar el nombre del proveedor para la fábrica del proveedor del tipo 'System.Data.SqlClient.SqlClientFactory'. Asegúrese de que el proveedor ADO.NET esté instalado o registrado en la configuración de la aplicación.
Estoy totalmente fuera de mi mente cómo arreglar eso.
Mi archivo de configuración en el uso de la aplicación web dice:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, Version=6.0.0.0" />
</providers>
</entityFramework>
¿Alguien puede decirme cómo arreglar eso? Mi alternativa es volver al modelo primero, pero realmente me gustaría probar primero el código aquí.