AssociationEnd 요소(MSL)

MSL(매핑 사양 언어)의 AssociationEnd 요소는 개념적 모델의 엔터티 형식에 대한 수정 함수를 기본 데이터베이스의 저장 프로시저에 매핑할 때 사용됩니다. 수정 저장 프로시저가 연결 속성에 보관된 값을 갖는 매개 변수를 사용하는 경우 AssociationEnd 요소는 해당 속성 값을 매개 변수에 매핑합니다. 자세한 내용은 아래 예제를 참조하십시오.

엔터티 형식의 수정 함수를 저장 프로시저에 매핑하는 방법은 ModificationFunctionMapping 요소(MSL)Walkthrough: Mapping an Entity to Stored Procedures을 참조하십시오.

AssociationEnd 요소에는 다음 자식 요소가 있을 수 있습니다.

적용 가능한 특성

다음 표에서는 AssociationEnd 요소에 사용할 수 있는 특성에 대해 설명합니다.

특성 이름 필수 여부

AssociationSet

매핑되는 연결의 이름

From

매핑되는 연결에 해당하는 탐색 속성의 FromRole 특성 값. 자세한 내용은 NavigationProperty 요소(CSDL)를 참조하십시오.

To

매핑되는 연결에 해당하는 탐색 속성의 ToRole 특성 값. 자세한 내용은 NavigationProperty 요소(CSDL)를 참조하십시오.

예제

다음과 같은 개념적 모델 엔터티 형식이 있다고 가정합니다.

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

또한 다음과 같은 저장 프로시저가 있다고 가정합니다.

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;

Course 엔터티의 업데이트 함수를 이 저장 프로시저에 매핑하려면 DepartmentID 매개 변수에 값을 제공해야 합니다. DepartmentID의 값은 엔터티 형식의 속성에 해당하지 않으며, 여기에 표시된 매핑을 사용하는 독립 연결에 포함되어 있습니다.

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

다음 코드에서는 FK_Course_Department 연결의 DepartmentID 속성을 Course 엔터티 형식의 업데이트 함수가 매핑된 UpdateCourse 저장 프로시저에 매핑하는 데 사용되는 AssociationEnd 요소를 보여 줍니다.

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

참고 항목

기타 리소스

CSDL, SSDL 및 MSL 사양
모델링 및 매핑(Entity Framework)