Compartir a través de


AssociationEnd (Elemento) (MSL)

El elemento AssociationEnd del lenguaje de especificación de asignaciones (MSL) se utiliza cuando las funciones de modificación de un tipo de entidad en el modelo conceptual están asignadas a procedimientos almacenados en la base de datos subyacente. Si un procedimiento almacenado de modificación toma un parámetro cuyo valor está contenido en una propiedad de asociación, el elemento AssociationEnd asigna el valor de propiedad al parámetro. Para obtener más información, vea el ejemplo siguiente.

Para obtener más información sobre cómo asignar funciones de modificación de tipos de entidad a procedimientos almacenados, vea ModificationFunctionMapping (Elemento) (MSL) y Walkthrough: Mapping an Entity to Stored Procedures.

El elemento AssociationEnd puede tener los siguientes elementos secundarios:

Atributos aplicables

En la tabla siguiente se describen los atributos aplicables al elemento AssociationEnd.

Nombre de atributo Es necesario Valor

AssociationSet

El nombre de la asociación que se está asignando.

From

El valor del atributo FromRole de la propiedad de navegación que corresponde a la asociación que se está asignando. Para obtener más información, vea NavigationProperty (Elemento) (CSDL).

To

El valor del atributo ToRole de la propiedad de navegación que corresponde a la asociación que se está asignando. Para obtener más información, vea NavigationProperty (Elemento) (CSDL).

Ejemplo

Considere el siguiente tipo de entidad del modelo conceptual:

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

Considere también el siguiente procedimiento almacenado:

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;

Para asignar la función de actualización de la entidad Course a este procedimiento almacenado, debe proporcionar un valor al parámetro DepartmentID. El valor para DepartmentID no corresponde a una propiedad del tipo de entidad; está contenido en una asociación independiente cuya asignación se muestra aquí:

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

El siguiente código muestra el elemento AssociationEnd que se utiliza para asignar la propiedad DepartmentID de la asociación FK_Course_Department al procedimiento almacenado UpdateCourse (al que la función de actualización del tipo de entidad Course está asignada):

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

Vea también

Otros recursos

Especificaciones CSDL, SSDL y MSL
Modelado y asignación (Entity Framework)