Condividi tramite


Eseguire il mapping delle restrizioni generiche ai requisiti Datasource

Il motore dei metadati di Visual Studio determina l'enumerazione dei tipi di oggetto specificando il nome del tipo con le restrizioni per un'enumerazione specificata. Spetta al tipo di oggetto dati, pertanto, fornire informazioni per convertire il nome del tipo e le restrizioni in una chiamata di enumerazione. Tuttavia, poiché le restrizioni sono necessariamente dati-database di origine-specifiche, è necessario disporre di un set di restrizioni generiche per ogni tipo mappato e l'altra, per convertire le restrizioni generiche nelle effettive restrizioni dati-database di origine-specifiche per enumerare l'insieme corretto di oggetti.

In modo che il motore dei metadati per fornire oggetti origine dati che eseguono il mapping ai tipi generici con gli identificatori generici e proprietà, il motore dei metadati necessita di un metodo di consentire ai client di specificare un set di oggetti generici per enumerare. Al livello dell'origine dati, il metodo è utilizzare le restrizioni per limitare gli oggetti del set di dati enumerati dal provider di dati.

Tuttavia, queste limitazioni sono necessariamente dati-database di origine-specifiche e non possono essere utilizzate come direttamente da un client generico. Di conseguenza, un set di restrizioni generiche deve essere associato a ogni tipo mappato; inoltre, deve essere un modo per convertire le restrizioni generiche alle limitazioni dati-database di origine-specifiche corrispondenti sono necessarie enumerare gli oggetti specificati di un insieme di dati.

Restrizioni di mapping

Come con mapping dei dati dati-database di origine-specifici ai concetti generiche (vedere Identificatori di tipo e proprietà dell'oggetto mapping ai tipi generici), un problema risultati ogni volta che si esegue il mapping dati-database di origine-specifico alle limitazioni generiche. Ciò può verificarsi, ad esempio, quando una restrizione generica rappresenta le restrizioni dati-database di origine-specifiche più, o viceversa. In altri argomenti della Guida sono e viene indicato come b: problema g.

Una soluzione è fornita nel file XML Schema, che consente un provider di dati non specifichi una conversione personalizzata a una limitazione dati-database di origine-specifica, fornito uno o più valori generici delle restrizioni.

In particolare, quando un provider di dati specifica un elemento mappato associato a un tipo di oggetto specificato, è possibile aggiungere attributi che descrivono le restrizioni, il filtro e ordinamento necessari. Nelle restrizioni e filtri, è possibile includere un identificatore di dati che fornisce il valore appropriato per una restrizione generica. Si consideri l'esempio seguente:

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

In questo esempio, il provider indica che i valori delle restrizioni generiche Schema e Name per il tipo mappato tabella devono essere mappati alle limitazioni retro-entità finale-specifiche con lo schema per primo e il nome in secondo luogo.

Nei casi in cui non esiste un mapping diretto tra le restrizioni generiche e database di origine-specifiche, il provider può aggiungere e fare riferimento ai valori di sostituzione dall'interno dell'identificatore di dati, come nel seguente esempio:

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

In questo esempio, il provider presenta una terza restrizione, IsSystemObject, che è un valore booleano che specifica il tipo di oggetti che devono essere enumerati. Se non specificato, tutti gli oggetti vengono enumerati; se false, solo oggetti dell'utente viene enumerato, se true, solo oggetti di sistema viene enumerato.

Inoltre, si supponga che il tipo mappato Tabella sia presente una restrizione generica, Type, il cui valore è “USER„ o “SYSTEM„. Poiché non esiste un mapping diretto tra questi due formati, il provider aggiunge un valore sostitutivo che accetta il valore della restrizione “tipo1„ e utilizza un'espressione per convertirlo in un valore boolean equivalente. Quindi il provider di dati contiene un identificatore di dati per fare riferimento al valore di sostituzione. L'identificatore di dati completa il riferimento utilizzando un indice in un set di valori di sostituzione specificata nell'elemento di MappedType. In questo caso, solo un valore specificato.

Vedere anche

Concetti

Identificatori di tipo e proprietà dell'oggetto mapping ai tipi generici

Supporto di dati di DDEX