Sdílet prostřednictvím


Generator – třída

Představuje abstraktní základní třída pro data generátory.

Hierarchie dědičnosti

System.Object
  Microsoft.Data.Schema.Tools.DataGenerator.Generator

Obor názvů:  Microsoft.Data.Schema.Tools.DataGenerator
Sestavení:  Microsoft.Data.Schema.Tools (v Microsoft.Data.Schema.Tools.dll)

Syntaxe

'Deklarace
<GeneratorAttribute(GetType(DefaultGeneratorDesigner))> _
<CLSCompliantAttribute(True)> _
Public MustInherit Class Generator _
    Implements IGenerator, IDisposable, IExtensionInformation, IExtension
[GeneratorAttribute(typeof(DefaultGeneratorDesigner))]
[CLSCompliantAttribute(true)]
public abstract class Generator : IGenerator, 
    IDisposable, IExtensionInformation, IExtension
[GeneratorAttribute(typeof(DefaultGeneratorDesigner))]
[CLSCompliantAttribute(true)]
public ref class Generator abstract : IGenerator, 
    IDisposable, IExtensionInformation, IExtension
[<AbstractClass>]
[<GeneratorAttribute(typeof(DefaultGeneratorDesigner))>]
[<CLSCompliantAttribute(true)>]
type Generator =  
    class
        interface IGenerator
        interface IDisposable
        interface IExtensionInformation
        interface IExtension
    end
public abstract class Generator implements IGenerator, IDisposable, IExtensionInformation, IExtension

Typ Generator zveřejňuje následující členy.

Konstruktory

  Název Popis
Chráněná metoda Generator Konstruktory tříd odvozených inicializace volána Generator Třída

Na začátek

Vlastnosti

  Název Popis
Veřejná vlastnost Collation Získá nebo nastaví kompletování nebo jazykově odpovídající řazení sloupce.
Veřejná vlastnost Column Získá nebo nastaví sloupec.
Veřejná vlastnost ColumnName Získá nebo nastaví název sloupce.
Veřejná vlastnost Constraints Získá nebo nastaví informace o kontrolu omezení pro sloupec.
Veřejná vlastnost DefaultLocaleId Získá nebo nastaví ID národního prostředí.
Veřejná vlastnost DefaultValue Získá nebo nastaví výchozí hodnoty sloupce.
Veřejná vlastnost ExtensionHandle Získá popisovač rozšíření.
Veřejná vlastnost MaxLength Získá nebo nastaví maximální délka hodnoty v tomto sloupci.
Veřejná vlastnost Nullable Získá nebo nastaví hodnotu, která označuje, zda tento sloupec můžete nastavit nullodkaz Null (Nothing v jazyce Visual Basic).
Veřejná vlastnost OutputKey Získá nebo nastaví klíč používaný k načtení hodnot výstupu.
Veřejná vlastnost PercentageNull Získá nebo nastaví procentuální hodnoty generované pro tento sloupec, který uživatel chce být nullodkaz Null (Nothing v jazyce Visual Basic).Procentuální hodnota je vyjádřena jako celé číslo mezi 0 a 100.
Veřejná vlastnost Precision Získá nebo nastaví přesnost údajů.
Veřejná vlastnost RowsToInsert Získá nebo nastaví počet řádků generovat.
Veřejná vlastnost Scale Získá nebo nastaví měřítko data.
Veřejná vlastnost SchemaName Získá nebo nastaví název schématu, do které patří sloupce.
Veřejná vlastnost Seed Získá nebo nastaví osiva.Osivo lze inicializovat algoritmus generace deterministický náhodná data.
Veřejná vlastnost TableName Získá nebo nastaví název tabulky, do které patří sloupce.
Veřejná vlastnost TargetType Získá nebo nastaví datový typ cílového sloupce.
Veřejná vlastnost Unique Získá nebo nastaví hodnotu, která označuje, zda je sloupec, který je generován část omezení primárního klíče nebo jedinečnosti.

Na začátek

Metody

  Název Popis
Veřejná metoda Dispose() Uvolní všechny prostředky používané Generator.
Chráněná metoda Dispose(Boolean) Uvolní nespravované prostředky, které jsou používány Generator a volitelně spravované prostředky.
Veřejná metoda Equals Určuje, zda zadaná Object se rovná aktuální Object. (Zděděno z Object.)
Chráněná metoda Finalize Umožňuje zkuste uvolnit prostředky a provádět další operace vyčištění před je převzaty systémem pro uvolnění objektu. (Zděděno z Object.)
Veřejná metoda GenerateNextValues Generuje další hodnotu podle data algoritmus generace.
Veřejná metoda GetHashCode Slouží jako funkce hash určitého typu. (Zděděno z Object.)
Veřejná metoda GetOutputValue Načte hodnotu výstupu pomocí OutputKey.
Veřejná metoda GetType Získává Type aktuální instance. (Zděděno z Object.)
Veřejná metoda Initialize Inicializuje generátor data.
Chráněná metoda MemberwiseClone Vytvoří kopii aktuální Object. (Zděděno z Object.)
Chráněná metoda OnGenerateNextValues Generuje další hodnotu podle data algoritmus generace.
Chráněná metoda OnGetOutputValue Načte aktuální sadu výsledků, který se skládá z jedné nebo více hodnot.
Chráněná metoda OnInitialize Inicializuje generátoru.
Chráněná metoda OnNextValues Generuje další sadu hodnot pro řádek dat
Chráněná metoda OnSetInputValues Nastaví vlastnosti vstupní data generátor pomocí poskytnutého seznam pojmenovaných hodnot.
Chráněná metoda OnValidateInputs Ověří nastavení požadovaných vstupy na generátor data.
Veřejná metoda SetExtensionHandle Nastaví popisovač rozšíření pomocí úchytu zadanou příponu.
Veřejná metoda SetInputValues Nastaví vstupní hodnoty dat generátoru.
Veřejná metoda ToString Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.)
Veřejná metoda ValidateInputs Ověří nastavení požadovaných vstupy na generátor data.

Na začátek

Poznámky

Pokud generátory standardní data jsou nedostatečné, můžete vytvořit vlastní data generátory. Vytvořit generátor vlastní data, musíte vytvořit třídu, která implementuje IGenerator nebo dědí z Generator. Identifikaci třídy dat generátoru podle stavební dokončovací práce s GeneratorAttribute.

Můžete vytvořit vlastní designer pro vlastní data zdroje tepla, nebo můžete použít DefaultGeneratorDesigner.

Základní třídy implementace sestaví výstupů, které jsou založeny na veřejné vlastnosti označené OutputAttribute. Vstupy jsou nastaveny pomocí InputAttribute. Použití vlastnosti označené s atributy poskytuje jednoduchý mechanismus pro deklarování vstupní a výstupní hodnoty, které jsou silný.

Příklady

Generátory standardní data nelze generovat data splňují některé kontrolních omezení. Například datum je jedna dvě odlišné oblasti vyžadující omezení nelze použít standardní DateTime generátor. Tento příklad vytvoří generátor vlastní data, která uspokojuje taková omezení. Dvě odlišné oblasti přijímá jako vstupní generátoru a generuje náhodné datum, které je jedním ze dvou oblastí. Další informace naleznete v tématu Walkthrough: Vytváření Generátor data Uživatelský Zaškrtnout omezení.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.TeamSystem.Data.DataGenerator;

namespace GeneratorDateRangesCS
{
    public class GeneratorDateRangesCS : Generator
    {
        DateTime mRange1Min;
        DateTime mRange1Max;

        DateTime mRange2Min;
        DateTime mRange2Max;

        [Input]
        public DateTime Range1Min
        {
            set {mRange1Min = value;}
        }

        [Input]
        public DateTime Range1Max
        {
            set {mRange1Max = value;}
        }

        [Input]
        public DateTime Range2Min
        {
            set {mRange2Min = value;}
        }

        [Input]
        public DateTime Range2Max
        {
            set {mRange2Max = value;}
        }

        DateTime mRandomDate;

        [Output]
        public DateTime RandomDate
        {
            get {return mRandomDate;}
        }

        Random mRandom;
        Random mRandomRange;

        protected override void OnInitialize(GeneratorInit initInfo)
        {
            // Deterministic
            mRandom = new Random(this.Seed);
            mRandomRange = new Random(this.Seed);  //deterministic

            // Non-deterministic
            //mRandom = new Random();
            //mRandomRange = new Random();

            base.OnInitialize(initInfo);
        }

        protected override void OnGenerateNextValues()
        {
            DateTime min;
            DateTime max;

            // Generate a random date from either range 1 or range 2.
            // Randomly select either range 1 or range 2 by randomly 
            // generating an odd or an even random number.
            if (mRandomRange.Next() % 2 == 0)  //check for odd or even
            {
                min = mRange1Min;
                max = mRange1Max;
            }
            else
            {
                min = mRange2Min;
                max = mRange2Max;
            }

            // The formula for creating a random number in a specific
            // range is: of range + (size of range * random number 
            // between 0 and 1)

            //size of range
            TimeSpan range = max - min;

            // (Size of range * random number between 0 and 1)
            TimeSpan randomNumber = new TimeSpan(
                (long)(range.Ticks * mRandom.NextDouble()));

            // Start of range + (size of range * random number 
            // between 0 and 1)
            mRandomDate = min + randomNumber;
        }
    } // End of class
}     // End of namespace
Imports Microsoft.VisualStudio.TeamSystem.Data.DataGenerator

Public Class GeneratorDateRangesVB
    Inherits Generator

    Dim mRange1Min As Date
    Dim mRange1Max As Date

    Dim mRange2Min As Date
    Dim mRange2Max As Date

    <Input()> _
    Public WriteOnly Property Range1Min() As Date
        Set(ByVal value As Date)
            mRange1Min = value
        End Set
    End Property

    <Input()> _
    Public WriteOnly Property Range1Max() As Date
        Set(ByVal value As Date)
            mRange1Max = value
        End Set
    End Property

    <Input()> _
    Public WriteOnly Property Range2Min() As Date
        Set(ByVal value As Date)
            mRange2Min = value
        End Set
    End Property

    <Input()> _
    Public WriteOnly Property Range2Max() As Date
        Set(ByVal value As Date)
            mRange2Max = value
        End Set
    End Property

    Dim mRandomDate As Date

    <Output()> _
    Public ReadOnly Property RandomDate() As Date
        Get
            Return mRandomDate
        End Get
    End Property

    Dim mRandom As Random
    Dim mRandomRange As Random

    Protected Overrides Sub OnInitialize(ByVal initInfo _
        As GeneratorInit)

        mRandom = New Random(Me.Seed)       'deterministic
        mRandomRange = New Random(Me.Seed)  'deterministic

        'mRandom = New Random()              'non-deterministic
        'mRandomRange = New Random()         'non-deterministic

        MyBase.OnInitialize(initInfo)
    End Sub

    Protected Overrides Sub OnGenerateNextValues()
        Dim min As Date
        Dim max As Date

        ' Generate a random date from either range 1 or range 2.
        ' Randomly select either range 1 or range 2 by randomly 
        ' generating an odd or an even random number.
        '------------------------------------------------------------
        If mRandomRange.Next() Mod 2 = 0 Then  'check for odd or even
            min = mRange1Min
            max = mRange1Max
        Else
            min = mRange2Min
            max = mRange2Max
        End If

        ' The formula for creating a random number in a specific 
        ' range is: of range + (size of range * random number 
        ' between 0 and 1)

        ' Size of range
        Dim range As TimeSpan = max - min

        ' (Size of range * random number between 0 and 1)
        Dim randomNumber As TimeSpan = _
            New TimeSpan(CLng(range.Ticks * mRandom.NextDouble()))

        ' Start of range + (size of range * random number 
        ' between 0 and 1)
        mRandomDate = min + randomNumber
    End Sub
End Class

Zabezpečení podprocesu

Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou zabezpečeny pro používání podprocesů. Zabezpečení sdílených členů pro používání podprocesů není zaručeno.

Viz také

Odkaz

Microsoft.Data.Schema.Tools.DataGenerator – obor názvů

GeneratorAttribute

GeneratorInit

IGenerator

Další zdroje

Walkthrough: Vytváření Generátor data Uživatelský Zaškrtnout omezení

Creating Custom Data Generators

Přehled Generátor data Rozšíření

Specifying Details of Data Generation for a Column