AssociationEnd-Element (MSL)

Das AssociationEnd-Element der Mapping-Spezifikationssprache (Mapping Specification Language, MSL) wird verwendet, wenn die Änderungsfunktionen eines Entitätstyps im konzeptionellen Modell gespeicherten Prozeduren in der zugrunde liegenden Datenbank zugeordnet werden. Wenn eine gespeicherte Änderungsprozedur einen Parameter akzeptiert, dessen Wert in einer Zuordnungseigenschaft enthalten ist, ordnet das AssociationEnd-Element den Eigenschaftswert dem Parameter zu. Weitere Informationen finden Sie im untenstehenden Beispiel.

Weitere Informationen zum Zuordnen von Änderungsfunktionen von Entitätstypen zu gespeicherten Prozeduren finden Sie unter ModificationFunctionMapping-Element (MSL) und Walkthrough: Mapping an Entity to Stored Procedures

Das AssociationEnd-Element kann die folgenden untergeordneten Elemente aufweisen:

Anwendbare Attribute

In der folgenden Tabelle werden die Attribute beschrieben, die auf das AssociationEnd-Element anwendbar sind.

Attributname Ist erforderlich Wert

AssociationSet

Ja

Der Name der Zuordnung, die zugeordnet wird.

From

Ja

Der Wert des FromRole-Attributs der Navigationseigenschaft, die der Zuordnung entspricht, die zugeordnet wird. Weitere Informationen finden Sie unter NavigationProperty-Element (CSDL).

To

Ja

Der Wert des ToRole-Attributs der Navigationseigenschaft, die der Zuordnung entspricht, die zugeordnet wird. Weitere Informationen finden Sie unter NavigationProperty-Element (CSDL).

Beispiel

Betrachten Sie den folgenden Entitätstyp des konzeptionellen Modells:

<EntityType Name="Course">
  <Key>
    <PropertyRef Name="CourseID" />
  </Key>
  <Property Type="Int32" Name="CourseID" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" MaxLength="100" 
            FixedLength="false" Unicode="true" />
  <Property Type="Int32" Name="Credits" Nullable="false" />
  <NavigationProperty Name="Department" 
                      Relationship="SchoolModel.FK_Course_Department" 
                      FromRole="Course" ToRole="Department" />
</EntityType>

Betrachten Sie auch die folgende gespeicherte Prozedur:

CREATE PROCEDURE [dbo].[UpdateCourse]
        @CourseID int,
        @Title nvarchar(50),
        @Credits int,
        @DepartmentID int
        AS
        UPDATE Course SET Title=@Title, 
                Credits=@Credits,
                DepartmentID=@DepartmentID
        WHERE CourseID=@CourseID;

Um dieser gespeicherten Prozedur die Aktualisierungsfunktion der Course-Entität zuzuordnen, müssen Sie einen Wert für den DepartmentID-Parameter angeben. Der Wert für DepartmentID entspricht keiner Eigenschaft des Entitätstyps; er ist vielmehr in einer unabhängigen Zuordnung enthalten, deren Zuordnung hier angezeigt wird:

<AssociationSetMapping Name="FK_Course_Department" 
                       TypeName="SchoolModel.FK_Course_Department" 
                       StoreEntitySet="Course">
  <EndProperty Name="Course">
    <ScalarProperty Name="CourseID" ColumnName="CourseID" />
  </EndProperty>
  <EndProperty Name="Department">
    <ScalarProperty Name="DepartmentID" ColumnName="DepartmentID" />
  </EndProperty>
</AssociationSetMapping>

Im folgenden Code wird das AssociationEnd-Element gezeigt, das verwendet wurde, um der DepartmentID-Eigenschaft der FK_Course_Department-Zuordnung der gespeicherten Prozedur UpdateCourse zuzuordnen (der die Aktualisierungsfunktion des Course-Entitätstyps zugeordnet ist):

<EntitySetMapping Name="Courses">
  <EntityTypeMapping TypeName="SchoolModel.Course">
    <MappingFragment StoreEntitySet="Course">
      <ScalarProperty Name="Credits" ColumnName="Credits" />
      <ScalarProperty Name="Title" ColumnName="Title" />
      <ScalarProperty Name="CourseID" ColumnName="CourseID" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="SchoolModel.Course">
    <ModificationFunctionMapping>
      <UpdateFunction FunctionName="SchoolModel.Store.UpdateCourse">
        <AssociationEnd AssociationSet="FK_Course_Department" 
                        From="Course" To="Department">
          <ScalarProperty Name="DepartmentID" 
                          ParameterName="DepartmentID" 
                          Version="Current" />
        </AssociationEnd>
        <ScalarProperty Name="Credits" ParameterName="Credits" 
                        Version="Current" />
        <ScalarProperty Name="Title" ParameterName="Title" 
                        Version="Current" />
        <ScalarProperty Name="CourseID" ParameterName="CourseID" 
                        Version="Current" />
      </UpdateFunction>
    </ModificationFunctionMapping>
  </EntityTypeMapping>
</EntitySetMapping>

Siehe auch

Weitere Ressourcen

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