Это может быть простой ответ, но я не вижу, как выполнить хранимую процедуру с EF CTP5.
В Entity Framework 4.0 мы сделали это:
ExecuteFunction("ContainerName.StoredProcName", new ObjectParameter("Id", id))
.
Какой метод на ObjectContext
.
Но DbContext
не имеет такого метода.
Как мы называем хранимый процесс? Разве это не поддерживается в EF CTP5?
EDIT:
Я нашел эту ветку , в которой говорится, что вам нужно сделать следующее:
var people = context.People.SqlQuery("EXECUTE [dbo].[GetAllPeople]");
Это вызывает некоторые опасения:
1) Теперь вы вызываете сохраненную процедуру для набора , а не context . Хранимые процедуры должны быть доступны для всего контекста, не привязаны к конкретному набору сущностей. Точно так же, как они находятся в «Базе данных» в SQL Server, а не в «Таблице».
2) А как насчет сложных типов ? Ранее у меня был сложный тип, возвращаемый из хранимой процедуры. Но теперь, похоже, вам нужно сопоставить непосредственно с сущностью? Это не имеет никакого смысла. У меня есть много сохраненных процедур, которые возвращают тип, не представленный непосредственно ObjectSet / DBSet, который я не могу понять, как я могу сделать это.
Надеюсь, что кто-нибудь может это прояснить для меня, потому что, насколько я понимаю, я не смогу перейти на CTP5.