How to: Reparar error ‘EntityFramework.SqlServer’ no se puede cargar en pruebas unitarias.

csharp_logo

Si necesitas reparar un error del componente ‘EntityFramework.SqlServer’ en la ejecución de tus pruebas debes saber esto:

¿Cual es el error que aparece?.

El error es el siguiente:

System.InvalidOperationException: The Entity Framework provider type ‘System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer’ registered in the application config file for the ADO.NET provider with invariant name ‘System.Data.SqlClient’ could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.

¿Que ocasiona el error?.

El error surge porque el archivo EntityFramework.SqlServer.dll no es correctamente referenciado debido a que no es explicitamente referenciado en los archivos binarios. El archivo es copiado al directorio bin pero no es visible por algún motivo, este es un problema recurrente de EntityFramework, ocurre habitualmente en los proyectos de pruebas, es posible que te aparezca en otro tipo de proyectos.

¿Como reparo este error?

Basta con referenciar explicitamente a los tipos del ensamblado para que no te vuelva a aparecer este error. Puedes hacer una referencia al ensamblado en tu clase AssemblyInitialize de tu proyecto de pruebas. También puedes hacer esto en tu método Main o tu archivo Global.asax

Gustavo Sánchez