0

私の組織は現在、特定の規則に従うカスタムストアドプロシージャを、プロシージャと同じシグネチャを持つドメインモデルの「get」メソッドに自動的にマッピングするcodegenフレームワーク(.nEtTiers)を使用しています。したがって、たとえば、Customerテーブルがあり、ストアドプロシージャsp_custom_Customer_GetBySalesAmount(@salesAmount)がある場合、フレームワークは、Customer用に生成された.NETプロバイダーにGetBySalesAmount(salesAmount)を作成します。

EFは、エンティティに対するCRUD操作のストアドプロシージャをサポートしていることを知っています。しかし、ゲッターにマップされるカスタムストアドプロシージャのサポートはありますか?私の組織はEFを使用する方向に動き始めたいと考えています。これをサポートできると、移行が非常にスムーズになります。

4

1 に答える 1

1

EDMXを使用するEFは、ストアドプロシージャのマッピングをサポートします。これは、関数のインポートと呼ばれます。最新のEF(4.x以降)は、エンティティが永続層に依存してはならないという少し異なるアプローチを採用しているため、関数のインポートが(エンティティクラスではなく)コンテキストクラスに追加されます。これらのエンティティはPOCOと呼ばれます。

EFですべてがサポートされているわけではないため、プロシージャに複雑さが含まれている場合、ストアドプロシージャのマッピングは少し難しい場合があります。たとえば、TVPはサポートされておらず、.NET 4.5を備えたEFのみが、プロシージャから返される複数の結果セットをサポートします。

于 2012-08-10T18:10:05.960 に答える