InsertFunction-Element (MSL)

In MSL (Mapping Specification Language) ordnet das InsertFunction-Element die Einfügefunktion eines Entitätstyps oder einer Zuordnung im konzeptionellen Modell einer gespeicherten Prozedur in der zugrunde liegenden Datenbank zu. Gespeicherte Prozeduren, denen Änderungsfunktionen zugeordnet werden, müssen im Speichermodell deklariert werden. Weitere Informationen finden Sie unter Function-Element (SSDL).

Cc716749.note(de-de,VS.100).gifHinweis:
Wenn Sie nicht alle drei Einfüge-, Aktualisierungs- und Löschvorgänge eines Entitätstyps gespeicherten Prozeduren zuordnen, schlagen die nicht zugeordneten Vorgänge bei der Ausführung zur Laufzeit fehl, und es wird eine Ausnahme des Typs UpdateException ausgelöst.

Das InsertFunction-Element kann ein untergeordnetes Element des ModificationFunctionMapping-Elements sein und auf das EntityTypeMapping-Element oder das AssociationSetMapping-Element angewendet werden.

InsertFunction angewendet auf EntityTypeMapping

Wenn das InsertFunction-Element auf das EntityTypeMapping-Element angewendet wird, ordnet es die Einfügefunktion eines Entitätstyps im konzeptionellen Modell einer gespeicherten Prozedur zu.

Ein InsertFunction-Element kann die folgenden untergeordneten Elemente aufweisen, wenn es einem EntityTypeMapping-Element zugeordnet wird:

Anwendbare Attribute

In der folgenden Tabelle werden die Attribute beschrieben, die auf das InsertFunction-Element angewendet werden können, wenn es auf ein EntityTypeMapping-Element angewendet wird.

Attributname Ist erforderlich Wert

FunctionName

Ja

Der mit einem Namespace qualifizierte Name der gespeicherten Prozedur, der die Einfügefunktion zugeordnet wird. Die gespeicherte Prozedur muss im Speichermodell deklariert werden.

RowsAffectedParameter

Nein

Der Name des Ausgabeparameters, der die Anzahl der betroffenen Zeilen zurückgibt.

Beispiel

Das folgende Beispiel basiert auf dem Modell "School" und zeigt ein InsertFunction-Element, das verwendet wird, um die Einfügefunktion des Entitätstyps Person der gespeicherten Prozedur InsertPerson zuzuordnen. Die gespeicherte Prozedur InsertPerson wird im Speichermodell deklariert.

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

InsertFunction angewendet auf AssociationSetMapping

Wenn das InsertFunction-Element auf das AssociationSetMapping-Element angewendet wird, ordnet es die Einfügefunktion einer Zuordnung im konzeptionellen Modell einer gespeicherten Prozedur zu.

Ein InsertFunction-Element kann die folgenden untergeordneten Elemente aufweisen, wenn es dem AssociationSetMapping-Element zugeordnet wird:

Anwendbare Attribute

In der folgenden Tabelle werden die Attribute beschrieben, die auf das InsertFunction-Element angewendet werden können, wenn es auf das AssociationSetMapping-Element angewendet wird.

Attributname Ist erforderlich Wert

FunctionName

Ja

Der mit einem Namespace qualifizierte Name der gespeicherten Prozedur, der die Einfügefunktion zugeordnet wird. Die gespeicherte Prozedur muss im Speichermodell deklariert werden.

RowsAffectedParameter

Nein

Der Name des Ausgabeparameters, der die Anzahl der betroffenen Zeilen zurückgibt.

Beispiel

Das folgende Beispiel basiert auf dem Modell "School" und zeigt ein InsertFunction-Element, das verwendet wird, um die Einfügefunktion der CourseInstructor-Zuordnung der gespeicherten Prozedur InsertCourseInstructor zuzuordnen. Die gespeicherte Prozedur InsertCourseInstructor wird im Speichermodell deklariert.

<AssociationSetMapping Name="CourseInstructor" 
                       TypeName="SchoolModel.CourseInstructor" 
                       StoreEntitySet="CourseInstructor">
  <EndProperty Name="Person">
    <ScalarProperty Name="PersonID" ColumnName="PersonID" />
  </EndProperty>
  <EndProperty Name="Course">
    <ScalarProperty Name="CourseID" ColumnName="CourseID" />
  </EndProperty>
  <ModificationFunctionMapping>
    <InsertFunction FunctionName="SchoolModel.Store.InsertCourseInstructor" >   
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </InsertFunction>
    <DeleteFunction FunctionName="SchoolModel.Store.DeleteCourseInstructor">
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </DeleteFunction>
  </ModificationFunctionMapping>
</AssociationSetMapping>

Siehe auch

Weitere Ressourcen

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