c# - stored - Procedimientos almacenados y actualización de EDMX
mapear stored procedure entity framework (4)
(Esta solución es para EF 6. No he probado otras versiones de EF. Funciona bien).
Ve al navegador Modelo. MyStoreProc es el nombre del procedimiento almacenado (como un ejemplo). MyStoreProc aparecerá en 3 lugares.
- 1er lugar- en Tipos complejos-> como MyStoreProc_result
- 2º lugar: en importaciones de funciones -> como MyStoreProc
- 3er Lugar - Bajo Procedimientos Almacenados / Funciones -> como MyStoreProc
Eliminar los tres del modelo. Guarde el edmx (haciendo clic en la ventana y luego ctrl + S). A continuación, haga clic derecho y haga clic en actualizar el modelo desde la base de datos. A continuación, agregue el procedimiento almacenado actualizado y vuelva a guardar.
Resuelto sin ningún problema :)
He tenido problemas interminables con los procedimientos almacenados y EDMX. Creé un procedimiento, actualicé el modelo de la base de datos y todo funcionó. Luego eliminé una columna y agregué una nueva en el procedimiento almacenado. Actualicé el modelo, pero el EDMX no pareció actualizar la definición del proceso.
Solté el proceso e hice una actualización, pero de forma manual tuve que eliminar todas las referencias al proceso. Terminé cambiando el nombre del proceso e importando a través de la actualización del modelo de la base de datos.
Solo tuve el mismo problema. Se agregó una nueva columna y se cambió el nombre a una columna existente. Actualicé el EDMX a través del modelo de actualización de la base de datos, pero no hubo cambios en el EDMX, y obviamente en el tiempo de ejecución, falla. ¿Cómo debería hacerse una actualización de procedimiento almacenado con Entity Framework?
Eliminé el proceso, regeneré el modelo, borré los archivos ''cs'' para el proceso, compilé, luego agregué el procedimiento a la base de datos nuevamente, regeneré el modelo y ¡bang! Agrega el mismo modelo 3 veces, con solo el último correcto. ¿Por qué sigue volviendo a las versiones anteriores?
Antes que nada, actualice su SP a través de "Actualizar el modelo de la base de datos", si funciona, bien, de lo contrario y lanzando la misma excepción, luego siga los pasos que se detallan a continuación. 1. Haga doble clic en el archivo .edmx. 2. En el Navegador de modelos, elimine SP de Tipos complejos, Importaciones de funciones y Procedimientos almacenados / Funciones. 3. Guardar todo. 4. Vuelva a agregar su SP a través de "Actualizar modelo desde la base de datos". 5. Guardar todo.
La única solución que pude encontrar fue cerrar el EDMX y editar manualmente el XML, que, incluso después de eliminar el proceso almacenado de la base de datos y actualizar el modelo de la base de datos, todavía se mencionaba el proceso. Eliminar las líneas del XML ha resuelto el problema.
Para actualizar un procedimiento almacenado existente en el archivo edmx,
- Vaya a "Navegador de modelos"> "Importaciones de funciones"> busque la clase de procedimiento almacenado deseada> haga clic con el botón derecho y haga clic en "Editar"
- En el formulario "Editar importación de funciones", en la sección "Devuelve una colección de", haga clic en el botón "Actualizar"
- Haga clic en "Aceptar" para finalizar la actualización.