Partager via


Élément ResultBinding (MSL)

L'élément ResultBinding en langage MSL (Mapping Specification Language) mappe des valeurs de colonne retournées par les procédures stockées aux propriétés de l'entité dans le modèle conceptuel lorsque les fonctions de modification du type d'entité sont mappées aux procédures stockées dans la base de données sous-jacente. Par exemple, lorsque la valeur d'une colonne d'identité est retournée par une procédure stockée d'insertion, l'élément ResultBinding mappe la valeur renvoyée à une propriété de type d'entité dans le modèle conceptuel.

L'élément ResultBinding peut être un enfant de l'élément InsertFunction ou de l'élément UpdateFunction.

L'élément ResultBinding ne peut pas avoir d'éléments enfants.

Attributs applicables

Le tableau ci-dessous décrit les attributs applicables à l'élément ResultBinding :

Nom d'attribut Requis Valeur

Name

Oui

Nom de la propriété d'entité dans le modèle conceptuel mappé.

ColumnName

Oui

Nom de la colonne mappée.

Exemple

L'exemple suivant est basé sur le modèle School et présente un élément InsertFunction utilisé pour mapper la fonction d'insertion du type d'entité Person à la procédure stockée InsertPerson. (La procédure stockée InsertPerson est décrite ci-dessous et est déclarée dans le modèle de stockage.) Un élément ResultBinding est utilisé pour mapper une valeur de colonne retournée par la procédure stockée (NewPersonID) à une propriété de type d'entité (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>

L'instruction Transact-SQL suivante décrit la procédure stockée 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;

Voir aussi

Autres ressources

Spécifications CSDL, SSDL et MSL
Modélisation et mappage (Entity Framework)