Function 要素 (SSDL)
ストア スキーマ定義言語 (SSDL) の Function 要素は、基になるデータベースに存在するストアド プロシージャを指定します。
Function 要素には、ここに示した順序で次の子要素を含めることができます。
Documentation 要素 (0 個または 1 個)
CommandText (0 個または 1 個)
Parameter (0 個以上)
Annotation 要素 (0 個以上)
ストレージ モデル内で指定されるストアド プロシージャは、アプリケーションの概念モデルにインポートできます。詳細については、「方法: ストアド プロシージャをインポートする」を参照してください。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>