Compartir a través de


Asignación Genérico Restricciones a los requisitos de Datasource

Las unidades del motor de metadatos de Visual Studio la enumeración de tipos de objeto especificando el nombre de tipo junto con las restricciones para una enumeración especificada. Es el tipo de objeto de datos, a continuación, proporcionar información para convertir el nombre de tipo y restricciones en una llamada de enumeración. Sin embargo, dado que las restricciones son necesariamente dato-origen-específicas, debe tener un conjunto de restricciones genéricas para cada tipo, y aún más asignados, una manera de convertir estas restricciones genéricas en las restricciones dato-origen-específicas reales para mostrar el conjunto correcto de objetos.

Para que el motor de metadatos proporciona los objetos de origen de datos que se asignan a los tipos genéricos con los identificadores y las propiedades genéricos, el motor de metadatos necesita un método permitir que los clientes especificar un conjunto de objetos genéricos para enumerar. En el nivel de origen de datos, el método es usar restricciones para restringir el conjunto de objetos de datos enumerados por el proveedor de datos.

Sin embargo, estas restricciones son necesariamente dato-origen-específicas y no se pueden utilizar para directamente por un cliente genérico. Por consiguiente, un conjunto de restricciones genéricas debe estar asociado a cada tipo asignado; además, debe haber una manera de convertir estas restricciones genéricas a las restricciones dato-origen-específicas correspondientes que son necesarias enumerar un conjunto determinado de objetos de datos.

Restricciones de asignación

Como con la asignación de datos dato-origen-específicos los conceptos genéricos (vea Identificadores y propiedades del tipo de objeto a los tipos genéricos), un problema produce siempre que asigne dato-origen-específico a las restricciones genéricas. La ambigüedad puede producirse, por ejemplo, cuando una restricción genérica representa restricciones dato-origen-específicas múltiples, o viceversa. En otros temas de Ayuda esto se conoce como b: problema de g.

Una solución se proporciona en el archivo de esquema XML, que permite que un proveedor de datos especifique una conversión personalizada a una restricción dato-origen-específica, con uno o más valores genérico de la restricción.

Específicamente, cuando un proveedor de datos especifica un elemento asignado que está asociado a un tipo de objeto determinado, es posible agregar atributos que describen las restricciones, el filtro, y la ordenación necesarios. En las restricciones y filtrar, es posible incluir un especificador de datos que proporciona el valor apropiado para una restricción genérica. Considere el ejemplo siguiente:

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

En este ejemplo, el proveedor indica que los valores de las restricciones genéricas Schema y Name para el tipo asignado tabla deben asignarse a las restricciones espalda-FIN-específicas con el esquema primero y nombre en segundo lugar.

En caso de que no hay asignación directa entre las restricciones genéricas y origen-específicas, el proveedor puede agregar y hacer referencia a valores de sustitución dentro del especificador de datos, como en el ejemplo siguiente:

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

En este ejemplo, el proveedor tiene una tercera restricción, IsSystemObject, que es un valor booleano que especifica el tipo de objetos que deben ir. Si no se especifica, se enumeran todos los objetos; si aparece false, sólo objetos de usuario; si aparece true, sólo los objetos del sistema.

Además, suponga que el tipo asignado tabla tiene una restricción genérica, Type, cuyo valor es “USER” o “SYSTEM”. Dado que no hay asignación directa entre estos dos formatos, el proveedor agrega un valor de sustitución que toma el valor de la restricción de “tipo” y use una expresión para convertirlo en un valor booleano equivalente. El proveedor de datos utiliza un especificador de datos para hacer referencia al valor de sustitución. El especificador de datos completa referencia mediante un índice en el conjunto de valores de sustitución especificado en el elemento de MappedType. En este caso, se especifica un solo valor.

Vea también

Conceptos

Identificadores y propiedades del tipo de objeto a los tipos genéricos

Compatibilidad con el objeto de datos de DDEX