EntityFramework: Error System.Data.Objects .ObjectParameter

El error es lanzado desde las entrañas del modelo (literalmente), mayormente cuando importamos un procedimiento almacenado o función Sql al modelo y se debe a que el namespace System.Data.Objects contiene el objeto ObjectParameter pero no el mismo tipo/implementación que espera el ObjectContext.ExecuteFunction. Para corregirlo, se debe modificar la plantilla del modelo (Normalmente es <Model>.Context.tt):

Error:

The best overloaded method match for ‘System.Data.Entity.Core.Objects.ObjectContext.ExecuteFunction(string, params System.Data.Entity.Core.Objects.ObjectParameter[])’ has some invalid arguments    C:\Users\…\DataLayer.Model\Model.Context.cs

Error    5    Argument 2: cannot convert from ‘System.Data.Objects.ObjectParameter’ to ‘System.Data.Entity.Core.Objects.ObjectParameter’    C:\Users\…\DataLayer.Model\Model.Context.cs

Antes de realizar el proceso completo, comprueben de manera rápida que ésta sea la solución antes de cambiar archivos del modelo. Primero vayan a la clase del error (que la mayoría de veces es <Model>.Context.cs) y en las importaciones de namespace busquen ‘using System.Data.Objects.ObjectParameter;‘ para luego borrar la línea y reemplazarla con ‘using System.Data.Entity.Core.Objects;‘. Si se detiene la gritadera del error: Continuar!

Primero, vamos al archivo del modelo que maneja la plantilla para los objetos:

model_context_1

Abrimos y entre las líneas 35 y 60 aprox. encontraremos la primera sección de los ‘using‘ que utiliza el Context. Buscamos la línea ‘using System.Data.Entity.Core.Objects;‘ y la cambiamos por ‘using System.Data.Objects.ObjectParameter;

model_context_2

Y así quedará:

model_context_3

Guardamos, y listo. No más agonía de Visual Studio.

Happy Coding ✌

Anuncios

4 comentarios en “EntityFramework: Error System.Data.Objects .ObjectParameter

¿Quieres agregar algo?

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 )

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 )

Google+ photo

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

Conectando a %s