Revisamos de forma exhaustivamente cada reseña de nuestra web con la meta de mostrarte siempre la información con la mayor veracidad y actualizada.
Solución:
Use los siguientes pasos para resolver este problema:
- Debe importar el procedimiento almacenado como una función. Haga clic con el botón derecho en el área del espacio de trabajo de su modelo de Entidad y elija
Add -> Function Import
. - En el cuadro de diálogo Agregar función de importación, ingrese el nombre al que desea que se haga referencia a su procedimiento almacenado en su modelo, por ejemplo
Search_Products
elija su procedimiento de la lista desplegable y elija el valor de retorno del procedimiento a serEntities
y eligeProducts
de la lista desplegable. -
Luego en el código detrás:
var db = new MyEntities(); var TEST_SEARCH_TERM = "product"; var result = db.Search_Products(TEST_SEARCH_TERM);//Search_Products is the name that you specified in Function Import dialog MyGridView.DataSource = result; MyGridView.DataBind();
La razón por la que obtienes -1
porque el resultado es que Entity Framework no puede admitir valores de retorno de procedimiento almacenado listos para usar. Creo que la compatibilidad con los valores de retorno de los procedimientos almacenados depende de la versión de Entity Framework. Además, Entity Framework no tiene soporte para procedimientos almacenados enriquecidos porque es un ORM, no un reemplazo de SQL.
Me he encontrado con esto antes con procedimientos almacenados usando SQL dinámico. He tenido éxito usando tipos complejos si agrego la línea ‘SET FMTONLY OFF;’ (consulte https://msdn.microsoft.com/en-us/library/ms173839.aspx) en la parte superior de mi procedimiento almacenado antes de agregarlo al modelo EF. Una vez que haya configurado su modelo con su tipo complejo, asegúrese de eliminar esta línea.
Ejemplo:
ALTER PROCEDURE dbo.SearchProducts
@SearchTerm VARCHAR(max)
AS
BEGIN
SET FMTONLY OFF;
DECLARE @query VARCHAR(max)
SET @query = 'SELECT * FROM dbo.Products WHERE Name LIKE ''%' + @SearchTerm + '%'''
EXEC(@query)
END
Reseñas y calificaciones
Tienes la posibilidad dar recomendación a este escrito si te fue de ayuda.