共用方式為


ResultBinding 項目 (MSL)

當實體類型修改函式已對應至基礎資料庫中的預存程序時,對應規格語言 (MSL) 中的 ResultBinding 項目會將預存程序所傳回的資料行值對應至概念模型中的實體屬性。例如,當插入預存程序傳回識別資料行的值時,ResultBinding 項目會將傳回值對應至概念模型中的實體類型屬性。

ResultBinding 項目可以是 InsertFunction 項目或 UpdateFunction 項目的子項目。

ResultBinding 項目不能有任何子項目。

適用屬性

下表描述可套用至 ResultBinding 項目的屬性:

屬性名稱

必要

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>
<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 規格

模型化及對應檔案