Compartir a través de


ResultBinding (Elemento) (MSL)

El elemento ResultBinding del lenguaje de especificación de asignaciones (MSL) asigna valores de columnas devueltos por procedimientos almacenados a propiedades de entidad del modelo conceptual cuando las funciones de modificación de tipo de entidad están asignadas a procedimientos almacenados de la base de datos subyacente. Por ejemplo, cuando un procedimiento almacenado de inserción devuelve el valor de una columna de identidad, el elemento ResultBinding asigna el valor devuelto a una propiedad de tipo de entidad del modelo conceptual.

El elemento ResultBinding puede ser un elemento secundario del elemento InsertFunction o el elemento UpdateFunction.

El elemento ResultBinding no puede tener ningún elemento secundario.

Atributos aplicables

En la tabla siguiente se describen los atributos aplicables al elemento ResultBinding:

Nombre de atributo Es necesario Valor

Name

El nombre de la propiedad de entidad del modelo conceptual que se está asignando.

ColumnName

El nombre de la columna que se está asignando.

Ejemplo

El siguiente ejemplo se basa en el modelo School y muestra un elemento InsertFunction que se utiliza para asignar la función de inserción del tipo de entidad Person al procedimiento almacenado InsertPerson. (El procedimiento almacenado InsertPerson se muestra abajo y se declara en el modelo de almacenamiento.) Se utiliza un elemento ResultBinding para asignar un valor de columna devuelto por el procedimiento almacenado (NewPersonID) a una propiedad de tipo de entidad (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>

El siguiente código Transact-SQL describe el procedimiento almacenado 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;

Vea también

Otros recursos

Especificaciones CSDL, SSDL y MSL
Modelado y asignación (Entity Framework)