Überlegungen zu benutzerdefinierten Daten-Generatoren

Sie können die Datengenerierungsfunktionen von Visual Studio erweitern, indem Sie benutzerdefinierte Daten-Generatoren erstellen. Wenn die Standarddatengeneratoren nicht der Geschäftsregel entsprechen, können Sie einen benutzerdefinierten Datengenerator erstellen. Weitere Informationen finden Sie unter Generieren von Testdaten für Datenbanken mithilfe von Daten-Generatoren.

Bevor Sie einen benutzerdefinierten Datengenerator erstellen, sollten Sie die folgenden Punkte beachten.

Datengeneratorbenennung

Bei der Erstellung eines benutzerdefinierten Datengenerators können Sie den Namen festlegen, der auf der Benutzeroberfläche für diesen benutzerdefinierten Datengenerator angezeigt wird. Vermeiden Sie die Verwendung identischer Namen für mehrere Datengeneratoren. Generatoren sollten auch nicht die Namen von integrierten Datengeneratoren erhalten.

Benennung bei Verwendung der deklarativen API

Sofern Sie keinen Designer für den benutzerdefinierten Datengenerator deklarieren, wird der Klassenname des Datengenerators als Anzeigename angezeigt, wenn Sie den DefaultDistributionDesigner erstellen.

Sie können das folgende Attribut auf die Klasse des benutzerdefinierten Datengenerators anwenden, um den Namen für den Generator anzugeben, der auf der Benutzeroberfläche für den benutzerdefinierten Datengenerator angezeigt wird:

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

Benennung bei Verwendung der Basis-API

Wenn Sie einen benutzerdefinierten Designer erstellen, wird der von der Name-Eigenschaft des Designers zurückgegebene Wert auf der Benutzeroberfläche für den benutzerdefinierten Datengenerator angezeigt. Wenn Sie den benutzerdefinierten Designer von DefaultGeneratorDesigner ableiten, wird das DisplayName-Attribut verwendet. Wenn Sie stattdessen den benutzerdefinierten Designer von IGeneratorDesigner ableiten, wird das DisplayName-Attribut ignoriert.

Um das DisplayName-Attribut für den Datengenerator anzugeben, müssen Sie der Datengeneratorklasse das folgende Attribut hinzufügen:

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

Angeben eines benutzerdefinierten Datengenerators als Standarddatengenerator für einen SQL-Datentyp

Sie können einen benutzerdefinierten Datengenerator als Standarddatengenerator für einen SQL-Datentyp zuweisen. Weitere Informationen finden Sie unter Gewusst wie: Ändern des Standard-Generators für einen Spaltentyp.

Wenn Sie einem SQL-Datentyp einen benutzerdefinierten Generator als Standarddatengenerator zuweisen, gelten folgende Beschränkungen:

  • Sie können einen benutzerdefinierten Datengenerator jedem SQL-Datentyp zuweisen, der keine UNIQUE-Einschränkung haben kann. Zum Beispiel können Sie dem Image-Datentyp einen benutzerdefinierten Datengenerator zuweisen.

  • Sie können einen benutzerdefinierten Datengenerator, der keine Filterattribute hat, jedem SQL-Datentyp zuweisen.

  • Sie können einem SQL-Datentyp, der eine UNIQUE-Beschränkung besitzen kann, einen benutzerdefinierten Datengenerator mit Filterattributen zuweisen, wenn der benutzerdefinierte Datengenerator eindeutige Werte erzeugen kann. Um diese Art von Generator festzulegen, wenden Sie das folgende Attribut auf die benutzerdefinierte Datengeneratorklasse an:

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

Benutzerdefinierte Designer

Standardmäßig verwendet ein benutzerdefinierter Datengenerator den Standarddesigner.

Wenn Sie einen benutzerdefinierten Designer mit Ihrem benutzerdefinierten Datengenerator verwenden möchten, müssen Sie in der benutzerdefinierten Datengeneratorklasse ein zusätzliches Attribut angeben:

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

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

Automatisch zugewiesene Eingabeeigenschaften

Wenn Sie eine oder mehrere Eingabeeigenschaften für den benutzerdefinierten Datengenerator mit dem AutoAssignedInput-Attribut markieren, sollten Sie für diese Eigenschaften auch einen Schreibschutz festlegen. Für die Eigenschaft mit automatisch zugewiesener Eingabe ist ein Setter erforderlich, aber die ReadOnly-Eigenschaft sollte für den zugehörigen InputDescriptor auf true festgelegt sein.

Die Werte der meisten Eigenschaften, die Sie als automatisch zugewiesen markieren, werden zurückgesetzt, wenn Sie den Datengenerierungsplan öffnen. Die Eigenschaften Collation, Data Type, MaxLength, Nullable und RowsToGenerate beispielsweise werden alle zurückgesetzt, wenn sie als automatisch zugewiesen markiert werden. Im Gegensatz dazu werden die Eigenschaften Unique, Seed und PercentageNull nicht zurückgesetzt, wenn sie als automatisch zugewiesen markiert werden.

Markieren Sie die Eigenschaften, deren Werte zurückgesetzt werden, als schreibgeschützt. So tragen Sie dazu bei, dass Verwechslungen durch Benutzer Ihres benutzerdefinierten Datengenerators vermieden werden.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von benutzerdefinierten Daten-Generatoren

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Daten-Generators

Konzepte

Übersicht über die Erweiterbarkeit von Daten-Generatoren

Generieren spezialisierter Testdaten mit einem benutzerdefinierten Daten-Generator