Entity Framework: Como solucionar los problemas en la carga de la metadata!

Hacía tiempo que no “jugaba” con las últimas versiones de Entity Framework y esta tarde mientras estaba usando un control de tipo EntityDataSource me encontré conque al intentar usar el EDM de EF que tenía definido en el proyecto de Visual Studio el asistente de configuración de la fuente de datos subyacente me soltaba un error la mar de majo: “The metadata specified in the connection string could not be loaded. Consider rebuilding the web project to build assemblies that may contain metadata. The following error(s) ocurred: Unable to load the specified metadata resource”. Lógicamente, tras decir WTF me puse a tratar de solucionar el asunto porque necesitaba poder configurar ese EntityDataSource para una pequeña prueba de concepto…

image

Tras revisar que las cadenas de conexión estaban correctas en el Web.Config y que el problema no se debía al modelo de EF generado en Visual Studio 2013, me puse a bucear por la red en busca de este error y similares, y por suerte (y también por desgracia), me encontré con varias entradas reportando el problema para versiones anteriores a la 6.0 de EF…tras varias pruebas sin resultados, finalmente encontré un par de referencias que me llevaron a la solución al problema

En particular, el segundo enlace es el que contiene la descripción del problema y la solución dada por Diego de La Vega de Microsoft:

Certainly, the EntityDataSource that is part of .NET framework does not support EF6. When you get the error it is because the control is trying to load the model in the EF5 runtime, which does not support 2012 as the value for ProviderManifestToken.We have an updated version of the EntityDataSource in the works that supports the EF6 runtime, and the current plan is to make it available in a NuGet package.

  • In the meanwhile, it seems that there are two workarounds: – Editing your edmx file and replacing 2012 with 2008 then using EF5 instead of EF6
  • Using model binding for WebForms instead of a DataSource control.

Tras esto, me puse manos a la obra para probar si alguno de los dos workaround funcionaba empezando por el primero:

  • En Visual Studio 2013, edité el archivo .edmx de mi modelo y efectivamente, aparece la propiedad ProverManifestToken con el valor 2012.

image

  • Tras cambiar el valor de ese atributo de 2012 a 2008 y recompilar el proyecto, ya pude configurar sin problemas el control EntityDataSource y usarlo en mi POC…por lo que con el primer workaround, se soluciona el problema.

image

De acuerdo al mismo mensaje de Diego de La Vega, se estaba trabajando en una nueva versión de EntityDataSource que solucione este problema…desconozco si la nueva versión está disponible o no.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s