ResultBinding 要素 (MSL)

マッピング スキーマ言語 (MSL) の ResultBinding 要素は、エンティティ型の変更関数が基になるデータベース内のストアド プロシージャにマップされている場合、ストアド プロシージャから返される列値を概念モデルのエンティティ プロパティにマップします。 たとえば、ID 列の値が挿入ストアド プロシージャから返されると、ResultBinding 要素は、戻り値を概念モデルのエンティティ型プロパティにマップします。

ResultBinding 要素は、InsertFunction 要素または UpdateFunction 要素の子にすることができます。

The ResultBinding element cannot have any child elements.

適用可能な属性

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

属性名 必須 Value

Name

有効

マップされる概念モデルのエンティティ プロパティの名前。

ColumnName

有効

マップされる列の名前。

次の例は School モデルに基づいており、Person エンティティ型の挿入関数を InsertPerson ストアド プロシージャにマップするときに使用する InsertFunction 要素を示しています。 次に示す InsertPerson ストアド プロシージャは、ストレージ モデルで宣言されます。 ResultBinding 要素は、ストアド プロシージャから返された列値 (NewPersonID) をエンティティ型プロパティ (PersonID) にマップするときに使用されます。

<EntityTypeMapping TypeName="SchoolModel.Person">
  <ModificationFunctionMapping>
    <InsertFunction FunctionName="SchoolModel.Store.InsertPerson">
      <ScalarProperty Name="EnrollmentDate"
                      ParameterName="EnrollmentDate" />
      <ScalarProperty Name="HireDate" ParameterName="HireDate" />
      <ScalarProperty Name="FirstName" ParameterName="FirstName" />
      <ScalarProperty Name="LastName" ParameterName="LastName" />
      <ResultBinding Name="PersonID" ColumnName="NewPersonID" />
    </InsertFunction>
    <UpdateFunction FunctionName="SchoolModel.Store.UpdatePerson">
      <ScalarProperty Name="EnrollmentDate"
                      ParameterName="EnrollmentDate"
                      Version="Current" />
      <ScalarProperty Name="HireDate" ParameterName="HireDate"
                      Version="Current" />
      <ScalarProperty Name="FirstName" ParameterName="FirstName"
                      Version="Current" />
      <ScalarProperty Name="LastName" ParameterName="LastName"
                      Version="Current" />
      <ScalarProperty Name="PersonID" ParameterName="PersonID"
                      Version="Current" />
    </UpdateFunction>
    <DeleteFunction FunctionName="SchoolModel.Store.DeletePerson">
      <ScalarProperty Name="PersonID" ParameterName="PersonID" />
    </DeleteFunction>
  </ModificationFunctionMapping>
</EntityTypeMapping>

次の Transact-SQL は InsertPerson ストアド プロシージャを記述します。

CREATE PROCEDURE [dbo].[InsertPerson]
        @LastName nvarchar(50),
        @FirstName nvarchar(50),
        @HireDate datetime,
        @EnrollmentDate datetime
        AS
        INSERT INTO dbo.Person (LastName, 
                    FirstName, 
                    HireDate, 
                    EnrollmentDate)
        VALUES (@LastName, 
            @FirstName, 
            @HireDate, 
            @EnrollmentDate);
        SELECT SCOPE_IDENTITY() as NewPersonID;

参照

その他のリソース

CSDL、SSDL、および MSL 仕様
モデリングとマッピング (Entity Framework)