3

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

私は何が欠けていますか?

ありがとう

4

1 に答える 1

5

DbContext は、ストアド プロシージャをメソッドにマッピングすることをサポートしていません。context.Database.SqlCommand(...) または context.Database.SqlQuery(...) を使用して、プロシージャを直接呼び出す必要があります。

于 2011-02-18T15:15:33.027 に答える