映射到数据源要求的泛型限制

Visual Studio 元数据引擎通过指定类型的对象类型的枚举名称以及限制。给定枚举的。 将由数据对象类型,然后,提供信息将该类型名称和限制为枚举调用。 但是,在中,因为限制必须是数据源特定的,则必须将每个映射类型的泛型限制和进一步,方法将这些一般限制为实际数据源特定的限制为枚举正确设置对象。

为了元数据引擎可以提供映射到具有泛型标识符和属性的泛型类型的数据源对象,元数据引擎需要方法允许客户端指定组通用对象枚举。 在数据源的级别,方法是使用限制限制设置数据提供枚举的数据对象。

但是,这些限制必须是数据源特定的和不能直接由泛型客户端因此使用。 因此,必须与组通用限制与每个映射的类型;此外,必须具有方式将这些一般限制为需要的枚举一组给定的数据对象的相应数据源特定的限制。

映射限制

与映射到一般概念的数据源特定数据 (请参见 映射到泛型类型的对象类型标识符和属性),导致问题,只要映射数据源特定于常规限制。 多义性,可能会发生例如,那么,当泛型限制表示多个数据源特定的限制时,反之亦然。 在其他帮助主题我们称之为为 b: g 问题。

解决方案在 XML 架构文件,提供允许数据提供程序指定到数据源特定的限制的自定义转换为一个或多个泛型限制值。

具体而言,数据,则提供程序指定与特定目标类型的一个映射元素时,将向描述必需的限制,筛选器,并排序的属性是可能的。 在限制和筛选器中,包括对泛型限制提供相应的值的数据说明符是可能的。 请看下面的示例:

<MappedType name="Table" underlyingType="Table" />
    <Selection restrictions="{Schema},{Name}"/>
</MappedType>

在此示例中,提供程序以指示应首先将一般限制 Schema 和 Name 的值该表映射的类型为与模式和名称的隐藏关闭特定的限制述。

在没有直接映射。泛型和源特定的限制之间存在,提供程序可以添加和引用替换值从数据说明符的内部,如下面的示例所示:

<MappedType name="Table" underlyingType="Table" />
    <Selection restrictions="{Schema},{Name},{0}">
        <SubstitutionValue mappedRestriction="Type">
            <Conversion>
                <Calculate expr="IIF({0}='SYSTEM',true,false)"                       type="System.Boolean"/>
            </Conversion>
        </SubstitutionValue>
    </Selection>
</Concept>

在此示例中,提供程序还有第三个限制, IsSystemObject,是指定对象的布尔值应枚举。 如果未指定,则所有对象枚举;如果 false,只有用户对象枚举;如果 true,只有系统对象枚举。

此外,假定该表映射的类型具有泛型限制, Type,值为 “用户”或 “系统”。因为没有直接映射。这两个布局之间,提供程序将采用 “type”限制的值并使用表达式转换为等效的布尔值的一个替换值。 然后数据提供程序使用一个数据说明符引用替换值。 数据说明符系统中使用索引。设置要在 MappedType 元素指定的替换值。 在这种情况下,仅一个值来指定。

请参见

概念

映射到泛型类型的对象类型标识符和属性

DDEX 数据对象支持