Condividi tramite


Elemento ResultBinding (MSL)

L'elemento ResultBinding in MSL (Mapping Specification Language) esegue il mapping dei valori di colonna restituiti dalle stored procedure alle proprietà di entità nel modello concettuale quando le funzioni di modifica del tipo di entità sono mappate alle stored procedure del database sottostante. Quando ad esempio il valore di una colonna di identità viene restituito da una stored procedure insert, l'elemento ResultBinding esegue il mapping del valore restituito a una proprietà del tipo di entità nel modello concettuale.

L'elemento ResultBinding può essere un figlio dell'elemento InsertFunction o dell'elemento UpdateFunction.

L'elemento ResultBinding non può contenere elementi figlio.

Attributi applicabili

Nella tabella riportata di seguito vengono descritti gli attributi applicabili all'elemento ResultBinding:

Nome attributo È obbligatorio Valore

Name

Nome della proprietà di entità nel modello concettuale di cui è in corso il mapping.

ColumnName

Nome della colonna di cui viene eseguito il mapping.

Esempio

Nell'esempio riportato di seguito, basato sul modello School, viene mostrato un elemento InsertFunction utilizzato per il mapping della funzione di inserimento del tipo di entità Person alla stored procedure InsertPerson. (La stored procedure InsertPerson viene mostrata di seguito e viene dichiarata nel modello di archiviazione). Un elemento ResultBinding viene utilizzato per eseguire il mapping di un valore della colonna restituito dalla stored procedure (NewPersonID) a una proprietà del tipo di 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>

Nel seguente Transact-SQL viene descritta la stored procedure 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;

Vedere anche

Altre risorse

Specifiche CSDL, SSDL e MSL
Modellazione e mapping (Entity Framework)