Entity Framework CTP5 - Как вызвать хранимую процедуру?

Это может быть простой ответ, но я не вижу, как выполнить хранимую процедуру с 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.

9
задан RPM1984 25 January 2011 в 04:02
поделиться