Share via


自訂資料產生器的考量

您可以建立自訂資料產生器,以擴充 Visual Studio 的資料產生功能。 如果具有標準資料產生器所無法滿足的商務規則,可以建立自訂資料產生器。 如需詳細資訊,請參閱使用資料產生器產生資料庫的測試資料

在建立自訂資料產生器之前,應考量下列問題。

資料產生器命名

在建立自訂資料產生器時,您可以控制在使用者介面中顯示的自訂資料產生器名稱。 應避免將多個資料產生器指定為同一個名稱。 您還應避免針對產生器指定與任何內建資料產生器相同的名稱。

使用宣告式 API 時的命名

如果您沒有宣告搭配自訂資料產生器使用的設計工具,那麼在建立 DefaultDistributionDesigner 時,會以資料產生器的類別名稱做為其顯示名稱。

若要指定在自訂資料產生器的使用者介面中所顯示的產生器名稱,您可以將下列屬性套用至自訂資料產生器類別:

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

使用基底 API 時的命名

如果您建立自訂設計工具,名稱屬性所傳回的值會顯示在自訂資料產生器的使用者介面中。 如果自訂設計工具衍生自 DefaultGeneratorDesigner,會使用 DisplayName 屬性。 如果您的自訂設計工具衍生自 IGeneratorDesigner,會忽略 DisplayName 屬性。

若要指定資料產生器的 DisplayName 屬性,您必須將下列屬性加入至資料產生器類別:

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

指定自訂資料產生器做為 SQL 資料型別的預設資料產生器

您可以指定自訂資料產生器做為 SQL 資料型別的預設資料產生器。 如需詳細資訊,請參閱 HOW TO:變更資料行型別的預設產生器

當您指派自訂資料產生器做為 SQL 資料型別的預設值時,會套用下列限制:

  • 您可以將自訂資料產生器指派給任何無法具有唯一條件約束 (Unique Constraint) 的 SQL 資料型別。 例如,您可以將自訂資料產生器指派給 Image 資料型別。

  • 您可以將沒有篩選屬性的自訂資料產生器指派給任何 SQL 資料型別。

  • 只有在自訂資料產生器可以產生唯一值時,您才可以將具有篩選屬性的自訂資料產生器指派給 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
[Generator(typeof(CustomDesignerType))]
public class TestGenerator:Generator
{
}

自動指派的輸入屬性

如果您使用 AutoAssignedInput 屬性 (Attribute) 為自訂資料產生器標記一個或多個輸入屬性 (Property),則應該也將這些屬性 (Property) 標記為唯讀。 屬性若是具有自動指派的輸入,則必須要有 setter,但其 InputDescriptor 的 ReadOnly 屬性應設定為 true。

當您開啟「資料產生計劃」(Data Generation Plan) 時,大部分標記為自動指派之屬性 (Property) 的值都會重設。 例如,Collation、Data Type、MaxLength、Nullable 和 RowsToGenerate 屬性 (Property) 在標記為自動指派時都會重設。 相反,Unique、Seed 和 PercentageNull 屬性 (Property) 在標記為自動指派時不會重設。

將值會重設的屬性 (Property) 標記為唯讀,自訂資料產生器的使用者就不會感到混淆。

請參閱

工作

HOW TO:建立自訂資料產生器

逐步解說:建立自訂資料產生器

概念

資料產生器擴充性概觀

使用自訂資料產生器產生特製化測試資料