Elemento AssociationEnd (MSL)
L'elemento AssociationEnd in MSL (Mapping Specification Language) viene utilizzato quando esiste un mapping tra le funzioni di modifica di un tipo di entità del modello concettuale e stored procedure del database sottostante. Se una stored procedure di modifica accetta un parametro il cui valore è contenuto in una proprietà di associazione, l'elemento AssociationEnd esegue il mapping del valore della proprietà al parametro. Per ulteriori informazioni, vedere l'esempio seguente.
Per ulteriori informazioni sul mapping di funzioni di modifica di tipi di entità a stored procedure, vedere Elemento ModificationFunctionMapping (MSL) e Walkthrough: Mapping an Entity to Stored Procedures.
Nell'elemento AssociationEnd possono essere inclusi gli elementi figlio seguenti:
Attributi applicabili
Nella tabella riportata di seguito vengono descritti gli attributi applicabili all'elemento AssociationEnd.
Nome attributo | È obbligatorio | Valore |
---|---|---|
AssociationSet |
Sì |
Nome dell'associazione di cui è in corso il mapping. |
From |
Sì |
Valore dell'attributo FromRole della proprietà di navigazione che corrisponde all'associazione di cui è in corso il mapping. Per ulteriori informazioni, vedere Elemento NavigationProperty (CSDL). |
To |
Sì |
Valore dell'attributo ToRole della proprietà di navigazione che corrisponde all'associazione di cui è in corso il mapping. Per ulteriori informazioni, vedere Elemento NavigationProperty (CSDL). |
Esempio
Si consideri il tipo di entità del modello concettuale seguente:
<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>
Si consideri inoltre la seguente stored procedure:
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;
Per eseguire il mapping della funzione di aggiornamento dell'entità Course
a questa stored procedure, è necessario fornire un valore al parametro DepartmentID. Il valore di DepartmentID
non corrisponde a una proprietà sul tipo di entità. È contenuto in un'associazione indipendente il cui mapping è illustrato di seguito:
<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>
Nel codice seguente viene illustrato l'elemento AssociationEnd utilizzato per eseguire il mapping della proprietà DepartmentID dell'associazione FK_Course_Department alla stored procedure UpdateCourse (a cui è associata la funzione di aggiornamento del tipo di entità Course):
<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>
Vedere anche
Altre risorse
Specifiche CSDL, SSDL e MSL
Modellazione e mapping (Entity Framework)