Partager via


Élément AssociationEnd (MSL)

L'élément AssociationEnd en langage MSL (Mapping Specification Language) est utilisé lorsque les fonctions de modification d'un type d'entité dans le modèle conceptuel sont mappées aux procédures stockées dans la base de données sous-jacente. Si une procédure stockée de modification prend un paramètre dont la valeur est conservée dans une propriété d'association, l'élément AssociationEnd mappe la valeur de propriété au paramètre. Pour plus d'informations, voir l'exemple ci-dessous.

Pour plus d'informations sur le mappage des fonctions de modification de types d'entité aux procédures stockées, consultez Élément ModificationFunctionMapping (MSL) et Walkthrough: Mapping an Entity to Stored Procedures.

L'élément AssociationEnd peut avoir les éléments enfants suivants :

Attributs applicables

Le tableau ci-dessous décrit les attributs applicables à l'élément AssociationEnd.

Nom d'attribut Requis Valeur

AssociationSet

Oui

Nom de l'association mappée.

From

Oui

Valeur de l'attribut FromRole de la propriété de navigation qui correspond à l'association qui est mappée. Pour plus d'informations, consultez Élément NavigationProperty (CSDL).

To

Oui

Valeur de l'attribut ToRole de la propriété de navigation qui correspond à l'association qui est mappée. Pour plus d'informations, consultez Élément NavigationProperty (CSDL).

Exemple

Considérons le type d'entité de modèle conceptuel suivant :

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

Considérons également la procédure stockée suivante :

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;

Pour mapper la fonction de mise à jour de l'entité Course à cette procédure stockée, vous devez fournir une valeur au paramètre DepartmentID. La valeur pour DepartmentID ne correspond pas à une propriété sur le type d'entité ; elle est contenue dans une association indépendante dont le mappage est indiqué ici :

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

Le code suivant indique l'élément AssociationEnd utilisé pour mapper la propriété DepartmentID de l'association FK_Course_Department à la procédure stockée UpdateCourse (à laquelle la fonction de mise à jour du type d'entité Course est mappée) :

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

Voir aussi

Autres ressources

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