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