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>

下面的 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 规范
建模和映射(实体框架)