다음을 통해 공유


형식 매핑

형식 매핑을 통해 데이터 데이터 공급자에 의해 정의 된 개체 형식 Visual Studio 메타 데이터 엔진에 정의 된 제네릭 데이터 형식에 매핑되는 과정입니다.

매핑 데이터 소스-일반 수 개념의 문제 (는 "b:g매핑 문제")로, 고유 키 제약 조건 유형의 것에 예를 들어, 다른 유형의 종류는 개체 형식 또는 기본 키에는 고유 키입니다 때 발생 합니다. 따라서 데이터 원본의 특정 종류는 일반화 될 수 있습니다 (예를 들어, 한 Constraint) 또는 세부적인 (처럼는 PrimaryKey, UniqueKey, 또는 ForeignKey). 일반 개념 변환과 일반화 되어 있지 않거나 세분화 된 발생할 경우는 g b 매핑 문제가 있습니다.

형식 매핑을 네 가지 방식으로 발생합니다.

  • 1: 1 형식 매핑

  • 1:g 형식 매핑

  • b:1 형식 매핑

  • b:g 형식 매핑

다음 섹션에서는 각각의 하는 경우에 주소입니다.

1: 1 형식 매핑

일대일 매핑이 가장 간단 하 고 데이터 공급자가 하나의 원본에 매핑되는 단일 데이터 소스 특정 형식을 사용할 경우 발생 형식에 매핑됩니다. 제네릭 매핑된 형식 (MappedType XML 요소) (XML 형식의 요소)를 데이터 소스 특정 형식으로 매핑하는 MappedType 요소에 underlyingType 특성을 지정 하 여 이러한 일대일 매핑을 적용할 수 있습니다. 다음 xml 예제에서는이 보여 줍니다.

DataObjectSupport XML 파일에서 다음 XML을 데이터 소스 관련 열 선언을 보여 줍니다.

<Type name="Column" preferredOrdering="Database, Schema, Table, Id">
    <IdentifierRef name="SubSchemaObjectTypeIdentifier" arguments="Table" />
    <Properties>
        <PropertyListRef name="ColumnProperties" />
        <Property name="Computed" type="System.Boolean" />
    </Properties>
    <Services>
        <ServiceRef name="SubSchemaObjectTypeObjectSelectorService" arguments="Table, Table, Column, ColumnSelectorMappings" />
        <ServiceRef name="SubSchemaObjectTypeDSRefBuilderService" arguments="Table, 101, Field, 102" />
    </Services>
</Type>

UnderlyingType 특성을 통해 위의 열 형식이 매핑되는 TableColumn 일반 매핑된 형식 선언 DataObjectSupport XML 파일에서 다음 XML을 보여 줍니다.

<MappedType name="TableColumn" underlyingType="Column">
    <Selection restrictions="{Catalog},{Schema},{Table},{Name}" />
    <IdentifierRef name="MappedSubTypeIdentifier" arguments="Table" />
    <Properties>
        <Property name="Name" isIdentifierPart="true" />
        <Property name="Ordinal" underlyingMember="Id" />
        <PropertyListRef name="MappedSubTypeDataTypeProperties" />
        <Property name="IsNullable" underlyingMember="Nullable" />
        <Property name="IsComputed" underlyingMember="Computed" />
    </Properties>
</MappedType>

이 예제를 확장 하려면 unique 제약 조건에서 SQL Server 아키텍처를 고려해 야 합니다. 마다 고유한 제약 조건에는 항상 인덱스 및 unique 제약 조건에 노출에 대 한 모든 메타 데이터가 인덱스를 사용 하 여 제공 됩니다. 하나, 그런 다음 고유 키 SQL Server 인덱스의 일종 임을 말할 수 있습니다. 경우, 일반 개념 인덱스가 고유 키도 될 수 있는 아이디어를 지 원하는 위치에 매핑을 1: 1이 고 쉽게 처리 됩니다.

1:g 형식 매핑

데이터 원본의 특정 종류는 제네릭 매핑된 형식에 매핑하는 경우 다소 복잡 한입니다. 설명 하기 위해 (예:을 1: 1 매핑 즉) 위의 예제를 고려 하십시오. 이 경우, 제네릭 매핑된 형식입니다 UniqueKey. 이 1에서 만들어집니다:g 매핑 사태가 둘 이상의 제네릭 매핑된 형식을 나타내는 단일 데이터 원본을 특정 유형 (인덱스)를 (둘 다 UniqueKeyIndex). 데이터 공급자에서 다음 개체 형식에 여러 개의 매핑된 형식을 매핑할 이제 있어야 합니다.

<MappedType name="TableUniqueKey" underlyingType="Index">
    <Selection restrictions="{Catalog},{Schema},{Table},{Name}" filter="KeyType > 0" />
    <IdentifierRef name="MappedSubTypeIdentifier" arguments="Table" />
    <Properties>
        <Property name="Name" isIdentifierPart="true" />
        <Property name="IsPrimary" underlyingMember="KeyType">
            <Conversion>
                <Calculate expr="IIF({0} = 1, true, false)" exprType="System.Boolean" />
            </Conversion>
        </Property>
    </Properties>
</MappedType>
<MappedType name="Index" underlyingType="Index">
    <Selection restrictions="{Catalog},{Schema},{Table},{Name}" />
</MappedType>

공지는 filter 에 지정 된 특성의 UniqueKey 개념. 이 일부 실제로이 일반적인 개념을 나타내는 데이터 소스 특정 형식의 인스턴스를 식별 하는 최선의 방법입니다.

b:1 형식 매핑

단일 제네릭 매핑된 형식에 여러 개의 데이터 소스 관련 형식 매핑 데이터 공급자의 경우 단일 매핑된 형식은 여러 기본 형식에 지정 해야 합니다. 예를 들어 데이터 공급자에서 데이터 원본의 특정 종류를 정의 한다고 가정 UniqueKeyForeignKey에 있는 종류의 제약 조건. 다음 제네릭 매핑된 형식 한다고 가정 Constraint, 모든 제한 종류를 포함 하는. 그 결과 b: 1 매핑-단일 제네릭 매핑된 형식으로 나타낼 여러 데이터 원본의 특정 종류에.

이 대/이 소문자를 사용 하면 다음 예제에서와 같이 이전 사례 보다 좀 더 XML이 필요 합니다.

<Type name="ForeignKey" preferredOrdering="Database, Schema, Table, Name">
…
</Type>
<Type name="UniqueKey" preferredOrdering="Database, Schema, Table, Name">
…
</Type>
<MappedType name="Constraint" underlyingType="ForeignKey">
…
</MappedType>
<MappedType name="Constraint" underlyingType="UniqueKey">
…
</MappedType>

b:g 형식 매핑

마지막으로, 여러 일반 개념을 여러 데이터 소스 관련 형식 매핑 효과적으로 조합 1의 경우:g 및 b: 1 매핑. 예를 들어 데이터 원본의 특정 데이터 공급자 기본 키에 대 한 개념 구분에서 다른 제약 조건 (예를 들어,에서 고유 키 및 외래 키) 이 경우 있을 수 데이터 원본을 특정 유형 PrimaryKeyConstraint. 이제 일반 개념을 가정 UniqueKeyForeignKey, 어디는 UniqueKey 개념은 모두 기본 키 및 고유 키를 포함 합니다. 이 b:g 매핑, 형식이 매핑되는 여러 데이터 원본의 특정 종류에 여러 일반 표시 됩니다에 있습니다.

이러한 경우를 처리 하려면 데이터 공급자가이 매핑을 여러 데이터 원본의 특정 종류에 여러 개의 매핑된 형식을 지정 하 여 다음 XML에 표시 된 것 처럼 적용:

<Type name="PrimaryKey" preferredOrdering="Database, Schema, Table, Name">
…
</Type>
<Type name="Constraint" preferredOrdering="Database, Schema, Table, Name">
…
</Type>
<MappedType name="UniqueKey" underlyingType="PrimaryKey">
…
</MappedType>
<MappedType name="UniqueKey" underlyingType="Constraint">
    <Selection restrictions="{Catalog},{Schema},{Table},{Name}" filter="IsUnique = true" />
</MappedType>
<MappedType name="ForeignKey" underlyingType="Constraint">
    <Selection restrictions="{Catalog},{Schema},{Table},{Name}" filter="IsForeign = true" />
</MappedType>

참고 항목

개념

식별자와 속성 매핑

제네릭 형식에 형식 식별자 개체 및 속성 매핑