次の方法で共有


Function 要素 (SSDL)

ストア スキーマ定義言語 (SSDL) の Function 要素は、基になるデータベースに存在するストアド プロシージャを指定します。

Function 要素には、ここに示した順序で次の子要素を含めることができます。

ストレージ モデル内で指定されるストアド プロシージャは、アプリケーションの概念モデルにインポートできます。詳細については、「方法: ストアド プロシージャをインポートする」を参照してください。Function 要素を使用して、ストレージ モデルでカスタム関数を定義することもできます。詳細については、「方法: ストレージ モデルでカスタム関数を定義する」を参照してください。

適用可能な属性

次の表は、Function 要素に適用できる属性を示しています。

注意

次の表に記載されていない属性は、store のエイリアスで修飾される場合があります。このエイリアスは、https://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator 名前空間のエイリアスです。このような属性は、モデルの更新時にモデルの更新ウィザードで使用されます。

属性名

必須

Name

はい

ストアド プロシージャの名前。

ReturnType

いいえ

ストアド プロシージャの戻り値の型。

Aggregate

いいえ

ストアド プロシージャが集計値を返す場合は True、それ以外の場合はFalse。

BuiltIn

いいえ

関数が組み込み1 関数の場合は True、それ以外の場合は False。

StoreFunctionName

いいえ

ストアド プロシージャの名前。

NiladicFunction

いいえ

関数がニラディック2 関数の場合は True、それ以外の場合は False。

IsComposable

いいえ

関数がコンポーザブル3 関数の場合は True、それ以外の場合は False。

ParameterTypeSemantics

いいえ

関数オーバーロードの解決に使用される型のセマンティクスを定義する列挙。列挙はプロバイダー マニフェストで関数定義によって定義されます。既定値は AllowImplicitConversion です。

Schema

いいえ

ストアド プロシージャが定義されているスキーマの名前。

1 組み込み関数とは、データベースで定義されている関数です。ストレージ モデルで定義されている関数については、「CommandText 要素 (SSDL)」を参照してください。

2 ニラディック関数とは、パラメーターを受け入れず、呼び出すときにかっこが不要な関数です。

3 1 つの関数の出力をもう 1 つの関数の入力にできる場合に、この 2 つの関数はコンポーザブルです。

注意

Function 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は SSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。

次の例で、UpdateOrderQuantity ストアド プロシージャに対応する Function 要素を示します。このストアド プロシージャは 2 個のパラメーターを受け入れ、値を返しません。

<Function Name="UpdateOrderQuantity" 
          Aggregate="false" 
          BuiltIn="false" 
          NiladicFunction="false" 
          IsComposable="false" 
          ParameterTypeSemantics="AllowImplicitConversion" 
          Schema="dbo">
  <Parameter Name="orderId" Type="int" Mode="In" />
  <Parameter Name="newQuantity" Type="int" Mode="In" />
</Function>
<Function Name="UpdateOrderQuantity" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
  <Parameter Name="orderId" Type="int" Mode="In" />
  <Parameter Name="newQuantity" Type="int" Mode="In" />
</Function>

<Function Name="UpdateOrderQuantity" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
  <Parameter Name="orderId" Type="int" Mode="In" />
  <Parameter Name="newQuantity" Type="int" Mode="In" />
</Function>

関連項目

概念

エンティティ フレームワークの概要

SSDL 仕様

CommandText 要素 (SSDL)

その他の技術情報

CSDL、SSDL、および MSL 仕様

ADO.NET Entity Data Model ツール