Condividi tramite


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

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)