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