カスタム データ ジェネレータの考慮事項

Visual Studio Team System Database Edition のデータ生成機能を拡張するには、カスタム データ ジェネレータを作成するか、または標準データ ジェネレータを機能拡張します。 標準データ ジェネレータでは対応できないビジネス ルールがある場合は、カスタム データ ジェネレータを作成できます。 詳細については、「データ生成の概要」を参照してください。

カスタム データ ジェネレータを作成するには、あらかじめ、以下の問題を考慮しておく必要があります。

データ ジェネレータの名前付け

カスタム データ ジェネレータを作成する場合、ユーザー インターフェイスに表示されるカスタム データ ジェネレータの名前を制御できます。 複数のデータ ジェネレータの名前が競合しないようにしてください。

宣言型の API を使用した名前付け

カスタム データ ジェネレータで使用するデザイナを宣言しなかった場合、DefaultDistributionDesigner の作成時に、データ ジェネレータのクラス名が表示名として使用されます。

カスタム データ ジェネレータのユーザー インターフェイスに表示されるジェネレータの名前を指定するには、カスタム データ ジェネレータ クラスに次の属性を適用します。

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

基本型の API を使用した名前付け

カスタム デザイナを作成した場合、そのデザイナの [Name] プロパティによって返される値が、カスタム データ ジェネレータのユーザー インターフェイスに表示されます。 カスタム デザイナを DefaultDistributionDesigner から派生させた場合は、DisplayName 属性が使用されます。 代わりにカスタム デザイナを IGeneratorDesigner から派生させた場合、DisplayName 属性は無視されます。

データ ジェネレータの DisplayName 属性を指定するには、データ ジェネレータ クラスに次の属性を追加する必要があります。

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

カスタム データ ジェネレータを SQL データ型に対する既定のデータ ジェネレータとして指定する

カスタム データ ジェネレータを SQL データ型に対する既定のデータ ジェネレータとして割り当てることができます。 詳細については、「方法 : 列の種類に対応する既定のジェネレータを変更する」を参照してください。

カスタム データ ジェネレータを SQL データ型に対する既定のデータ ジェネレータとして割り当てる場合、次の制限事項があります。

  • UNIQUE 制約を持つことのできないすべての SQL データ型に、カスタム データ ジェネレータを割り当てることができます。 たとえば、Image データ型には、カスタム データ ジェネレータを割り当てることができます。

  • フィルタ属性を持たないカスタム データ ジェネレータは、すべての SQL データ型に割り当てることができます。

  • フィルタ属性を持つカスタム データ ジェネレータは、一意の値を生成できる場合に限り、UNIQUE 制約を持つ SQL データ型に割り当てることができます。 この種のジェネレータを指定するには、そのカスタム データ ジェネレータのクラスに次の属性を適用します。

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

カスタム デザイナ

既定で、カスタム データ ジェネレータは既定のデザイナを使用します。

カスタム データ ジェネレータと共にカスタム デザイナを使用する場合は、カスタム データ ジェネレータ クラスに追加属性を指定する必要があります。

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

End Class

自動的に割り当てられる入力プロパティ

AutoAssignedInput 属性を指定したカスタム データ ジェネレータに 1 つ以上の入力プロパティを指定する場合、それらのプロパティは読み取り専用にします。

自動的に割り当てられるプロパティとして指定すると、それらのプロパティの値は、データ生成計画を開いたときにリセットされます。 たとえば、Collation、Data Type、MaxLength、Nullable、および RowsToGenerate のプロパティは、自動的に割り当てられるように指定した時点でリセットされます。 一方、Unique、Seed、および PercentageNull の各プロパティは、自動的に割り当てられるように指定した時点ではリセットされません。

プロパティの値が読み取り専用にリセットされるようにすることで、カスタム データ ジェネレータのユーザーが混乱しないようにできます。

参照

処理手順

方法 : カスタム データ ジェネレータを作成する

チュートリアル: カスタム データ ジェネレータの作成

概念

データ ジェネレータ機能拡張の概要

カスタム データ ジェネレータで独自のテスト データを生成する