Freigeben über


ResultBinding-Element (MSL)

Das ResultBinding-Element der Mapping-Spezifikationssprache (Mapping Specification Language, MSL) ordnet Spaltewerte, die von gespeicherten Prozeduren zurückgegeben werden, Entitätseigenschaften im konzeptionellen Modell zu, wenn die den Entitätstyp ändernden Funktionen gespeicherten Prozeduren in der zugrunde liegenden Datenbank zugeordnet sind. Wenn der Wert einer Identitätsspalte beispielsweise von einer gespeicherten Einfügeprozedur zurückgegeben wird, ordnet das ResultBinding-Element den zurückgegebenen Wert einer Entitätstypeigenschaft im konzeptionellen Modell zu.

Das ResultBinding-Element kann ein untergeordnetes Element des InsertFunction-Elements oder des UpdateFunction-Elements sein.

Das ResultBinding-Element kann keine untergeordneten Elemente aufweisen.

Anwendbare Attribute

In der folgenden Tabelle werden die Attribute beschrieben, die auf das ResultBinding-Element anwendbar sind:

Attributname Ist erforderlich Wert

Name

Ja

Der Name der Entitätseigenschaft im konzeptionellen Modell, die zugeordnet wird.

ColumnName

Ja

Der Name der Spalte, die zugeordnet wird.

Beispiel

Das folgende Beispiel basiert auf dem Modell "School" und zeigt ein InsertFunction-Element, das verwendet wird, um die Einfügefunktion des Person-Entitätstyps der gespeicherten Prozedur InsertPerson zuzuordnen. (Die gespeicherte Prozedur InsertPerson wird unten dargestellt und ist im Speichermodell deklariert.) Ein ResultBinding-Element wird verwendet, um einen Spaltenwert, der von der gespeicherten Prozedur (NewPersonID) zurückgegeben wird, einer Entitätstypeigenschaft (PersonID) zuzuordnen.

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

Die folgenden Transact-SQL-Anweisungen beschreiben die gespeicherte Prozedur 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;

Siehe auch

Weitere Ressourcen

CSDL-, SSDL- und MSL-Spezifikationen
Modellieren und Zuordnen (Entity Framework)