Я не вижу хранимых процедур в DbContext с классами POCO - PullRequest
3 голосов
/ 18 февраля 2011

Почему я не вижу хранимую процедуру, добавленную в мой DbContext?DbContext генерируется шаблоном, представленным в выпуске CTP5 (с классами POCO).

Я добавил хранимые процедуры, как сказано в этом руководстве: http://thedatafarm.com/blog/data-access/checking-out-one-of-the-new-stored-procedure-features-in-ef4/

Более того, я искал, если записьдобавлен в моем контексте, и это результаты:

<Function Name="GetClientsForEmailSend" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" />

<FunctionImport Name="GetClientsForEmailSend" EntitySet="Client" ReturnType="Collection(DBMailMarketingModel.Client)" />

<FunctionImportMapping FunctionImportName="GetClientsForEmailSend" FunctionName="DBMailMarketingModel.Store.GetClientsForEmailSend">

Аналогичный вопрос:

Почему EF4 не сгенерирует метод для поддержки моего импорта функций?

но я сделал все подсказки.

Это хранимая процедура:

ALTER PROCEDURE GetClientsForEmailSend
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT OFF;

-- Insert statements for procedure here
SELECT *
FROM dbo.Client AS c
INNER JOIN Subscription AS i on c.IDClient = i.IDClient
WHERE c.Email is not null and c.Email <> '' and i.Active = 1
END
GO

Что мне не хватает?

Спасибо

1 Ответ

5 голосов
/ 18 февраля 2011

DbContext не поддерживает отображение хранимых процедур на методы.Вы должны вызвать процедуру напрямую, используя context.Database.SqlCommand (...) или context.Database.SqlQuery (...)

...