Entity Framework CTP5 - ¿Cómo llamar al procedimiento almacenado?
Esta puede ser una respuesta simple, pero no puedo ver cómo ejecutar un procedimiento almacenado con EF CTP5.
En Entity Framework 4.0, hicimos esto:
ExecuteFunction("ContainerName.StoredProcName", new ObjectParameter("Id", id))
.
¿Cuál es un método en elObjectContext
.
PeroDbContext
No tiene tal método.
¿Cómo llamamos a un proceso almacenado? ¿No es compatible con EF CTP5?
EDITAR:
encontréeste hilo, que indica que debes hacer esto:
var people = context.People.SqlQuery("EXECUTE [dbo].[GetAllPeople]");
Esto plantea algunas preocupaciones:
1) Ahora está llamando a un procedimiento almacenado en elconjunto, no lacontexto. Los procedimientos almacenados deben estar disponibles en todo el contexto, no vinculados a un conjunto de entidades en particular. Justo como están debajo de la "Base de datos" en SQL Server, y no debajo de la "Tabla".
2) ¿Qué pasa contipos complejos? Anteriormente tenía un tipo complejo devuelto de un procedimiento almacenado. Pero ahora, ¿parece que tienes que mapear directamente a una entidad? Eso no tiene ningún sentido. Tengo muchos procs almacenados que devuelven un tipo no representado directamente por un ObjectSet / DBSet, que no puedo ver cómo puedo detenerme.
Espero que alguien pueda aclarar esto por mí, porque por lo que entiendo hasta ahora, no podré actualizarme a CTP5.