Entity Framework CTP5 - Como chamar o procedimento armazenado?
Esta pode ser uma resposta simples, mas não consigo ver como executar um procedimento armazenado com o EF CTP5.
No Entity Framework 4.0, fizemos o seguinte:
ExecuteFunction("ContainerName.StoredProcName", new ObjectParameter("Id", id))
.
Qual é um método noObjectContext
.
MasDbContext
não tem esse método.
Como chamamos um proc armazenado? Não é suportado no EF CTP5?
EDITAR:
eu encontreiesta discussão, que afirma que você precisa fazer isso:
var people = context.People.SqlQuery("EXECUTE [dbo].[GetAllPeople]");
Isso levanta algumas preocupações:
1) Agora você está chamando um produto armazenado noconjunto, não ocontexto. Os procedimentos armazenados devem estar disponíveis em todo o contexto, não vinculados a um conjunto de entidades específico. Assim como eles estão no "Banco de Dados" no SQL Server e não na "Tabela".
2) Que taltipos complexos? Eu anteriormente tinha um tipo complexo sendo retornado de um procedimento armazenado. Mas agora, parece que você precisa mapear diretamente para uma entidade? Isso não faz nenhum sentido. Eu tenho muitos procs armazenados que retornam um tipo não representado diretamente por um ObjectSet / DBSet, que não consigo ver como posso encostar.
Espero que alguém possa esclarecer isso para mim, porque pelo que entendi até agora, não poderei atualizar para o CTP5.