Condividi tramite


Considerazioni per i generatori di dati personalizzati

È possibile estendere le funzionalità di generazione di dati di Visual Studio creando generatori di dati personalizzati. Se si dispone di una regola business che i generatori di dati standard non sono in grado di soddisfare, è possibile creare un generatore di dati personalizzato. Per ulteriori informazioni, vedere Generazione di dati di test per i database tramite generatori di dati.

Prima di creare un generatore di dati personalizzato, è necessario considerare i problemi seguenti.

Denominazione del generatore di dati

Quando si crea un generatore di dati personalizzato, è possibile controllare il nome che verrà visualizzato nell'interfaccia utente per tale generatore. È opportuno evitare di assegnare lo stesso nome a più generatori di dati e inoltre di assegnare al generatore lo stesso nome di qualsiasi altro generatore di dati incorporato.

Assegnazione di un nome quando si utilizza l'API dichiarativa

Se non si dichiara una finestra di progettazione per l'utilizzo con il generatore di dati personalizzato, quando verrà creata la classe DefaultDistributionDesigner, come nome verrà visualizzato il nome della classe del generatore di dati.

Per specificare il nome che verrà visualizzato nell'interfaccia utente per il generatore di dati personalizzato, è possibile applicare l'attributo seguente alla classe di tale generatore di dati personalizzato:

[System.ComponentModel.DisplayName("YourGeneratorName")]

Assegnazione di un nome quando si utilizza l'API di base

Se si crea una finestra di progettazione personalizzata, nell'interfaccia utente del generatore di dati personalizzato verrà visualizzato il valore restituito dalla proprietà Name di tale finestra di progettazione. Se si deriva la finestra di progettazione personalizzata dalla classe DefaultGeneratorDesigner, verrà utilizzato l'attributo DisplayName. Se invece la finestra di progettazione personalizzata viene derivata da IGeneratorDesigner, l'attributo DisplayName sarà ignorato.

Per specificare l'attributo DisplayName per il generatore di dati, è necessario aggiungere l'attributo seguente alla classe del generatore di dati:

[System.ComponentModel.DisplayName("YourGeneratorName")]

Specifica di un generatore di dati personalizzato come generatore di dati predefinito per un tipo di dati SQL

È possibile assegnare un generatore di dati personalizzato come generatore di dati predefinito per un tipo di dati SQL. Per ulteriori informazioni, vedere Procedura: modificare il generatore predefinito per un tipo di colonna.

Quando si assegna un generatore personalizzato come predefinito per un tipo di dati SQL, vengono applicate le seguenti limitazioni:

  • È possibile assegnare un generatore di dati personalizzato a qualsiasi tipo di dati SQL che non può avere un vincolo univoco. È ad esempio possibile assegnare un generatore di dati personalizzato al tipo di dati Image.

  • È possibile assegnare un generatore di dati personalizzato privo di attributi di filtro a qualsiasi tipo di dati SQL.

  • È possibile assegnare un generatore di dati personalizzato con attributi di filtro per un tipo di dati SQL che potrà avere un vincolo univoco solo se il generatore di dati personalizzato può restituire valori univoci. Per definire questo tipo di generatore, applicare l'attributo seguente alla classe del generatore di dati personalizzata:

    <GeneratorStyles(DesignerStyles:=GeneratorDesignerStyles.CanProduceUniqueValues)> _
    Public Class TestGenerator
        Inherits Generator
    
    End Class
    
    [GeneratorStyles(DesignerStyles = GeneratorDesignerStyles.CanProduceUniqueValues)]
    public class TestGenerator:Generator
    {
    }
    

Finestre di progettazione personalizzate

Per impostazione predefinita, un generatore di dati personalizzato utilizzerà la finestra di progettazione predefinita.

Se si desidera utilizzare una finestra di progettazione personalizzata con il generatore di dati personalizzato, è necessario specificare un attributo aggiuntivo nella classe del generatore di dati personalizzata:

<Generator(GetType(CustomDesignerType))> _
Public Class TestGenerator
    Inherits Generator

End Class
[Generator(typeof(CustomDesignerType))]
public class TestGenerator:Generator
{
}

Proprietà di input assegnate automaticamente

Se si contrassegna una o più proprietà di input per il generatore di dati personalizzato con l'attributo AutoAssignedInput, è inoltre necessario che le proprietà siano di sola lettura. La proprietà con un input assegnato automaticamente deve disporre di un metodo Set, ma non deve avere la proprietà ReadOnly impostata su True per InputDescriptor.

I valori della maggior parte delle proprietà contrassegnate come assegnate automaticamente saranno reimpostati quando si apre il piano di generazione dati. Ad esempio, le proprietà Collation, Data Type, MaxLength, Nullable e RowsToGenerate vengono tutte reimpostate quando sono contrassegnate come assegnate automaticamente. Viceversa, le proprietà Unique, Seed e PercentageNull non vengono reimpostate quando sono contrassegnate come assegnate automaticamente.

Impostando l'attributo di sola lettura per le proprietà i cui valori verranno reimpostati, si evita di confondere gli utenti del generatore di dati personalizzato.

Vedere anche

Attività

Procedura: creare generatori di dati personalizzati

Procedura dettagliata: creazione di un generatore dati personalizzato

Concetti

Cenni preliminari sulla estensibilità dei generatori di dati

Generare dati di test specializzati con un generatore di dati personalizzato