Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt die abstrakte Basisklasse für Datengeneratoren dar.
Vererbungshierarchie
System.Object
Microsoft.Data.Schema.Tools.DataGenerator.Generator
Namespace: Microsoft.Data.Schema.Tools.DataGenerator
Assembly: Microsoft.Data.Schema.Tools (in Microsoft.Data.Schema.Tools.dll)
Syntax
'Declaration
<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
Der Generator-Typ macht die folgenden Member verfügbar.
Konstruktoren
| Name | Beschreibung | |
|---|---|---|
![]() |
Generator | Wird von Konstruktoren in abgeleiteten Klassen aufgerufen, um die Generator-Klasse zu initialisieren. |
Zum Seitenanfang
Eigenschaften
| Name | Beschreibung | |
|---|---|---|
![]() |
Collation | Ruft die Sortierreihenfolge oder linguistisch korrekte Sortierung dieser Spalte ab oder legt diese fest. |
![]() |
Column | Ruft die Spalte ab oder legt diese fest. |
![]() |
ColumnName | Ruft den Spaltennamen ab oder legt diesen fest. |
![]() |
Constraints | Ruft die CHECK-Einschränkungsinformationen für die Spalte ab oder legt diese fest. |
![]() |
DefaultLocaleId | Ruft die Gebietsschema-ID ab oder legt sie fest. |
![]() |
DefaultValue | Ruft den Standardwert der Spalte ab oder legt diesen fest. |
![]() |
ExtensionHandle | Ruft das Erweiterungshandle ab. |
![]() |
MaxLength | Ruft die maximale Länge für Werte in dieser Spalte ab oder legt diese fest. |
![]() |
Nullable | Ruft einen Wert ab, der angibt, ob diese Spalte auf nullNULL-Verweis (Nothing in Visual Basic) festgelegt werden kann, oder legt einen Wert fest. |
![]() |
OutputKey | Ruft den Schlüssel ab, mit dem Ausgabewerte abgerufen werden, oder legt ihn fest. |
![]() |
PercentageNull | Ruft den Prozentwert der generierten Werte für diese Spalte ab, die nach Wunsch des Benutzers nullNULL-Verweis (Nothing in Visual Basic) sein sollen, oder legt diesen fest.Der Prozentwert wird als ganze Zahl zwischen 0 und 100 angegeben. |
![]() |
Precision | Ruft die Genauigkeit der Daten ab oder legt diese fest. |
![]() |
RowsToInsert | Ruft die Anzahl der zu generierenden Zeilen ab oder legt diese fest. |
![]() |
Scale | Ruft die Skalierung der Daten ab oder legt diese fest. |
![]() |
SchemaName | Ruft den Namen des Schemas ab, zu dem die Spalte gehört, oder legt einen Namen fest. |
![]() |
Seed | Ruft den Startwert ab oder legt ihn fest.Sie können den Startwert verwenden, um einen Algorithmus für die Generierung deterministischer Zufallsdaten zu initialisieren. |
![]() |
TableName | Ruft den Namen der Tabelle ab, zu der die Spalte gehört, oder legt einen Namen fest. |
![]() |
TargetType | Ruft den Zieldatentyp der Spalte ab bzw. legt diesen fest. |
![]() |
Unique | Ruft einen Wert ab, der angibt, ob die generierte Spalte Teil einer UNIQUE- oder PRIMARY KEY-Einschränkung ist, oder legt einen Wert fest. |
Zum Seitenanfang
Methoden
| Name | Beschreibung | |
|---|---|---|
![]() |
Dispose() | Gibt alle vom Generator verwendeten Ressourcen frei. |
![]() |
Dispose(Boolean) | Gibt die von Generator verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei. |
![]() |
Equals | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
![]() |
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.) |
![]() |
GenerateNextValues | Generiert den nächsten Wert entsprechend dem Datengenerierungsalgorithmus. |
![]() |
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
![]() |
GetOutputValue | Ruft mit dem OutputKey einen Ausgabewert ab. |
![]() |
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
![]() |
Initialize | Initialisiert den Datengenerator. |
![]() |
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
![]() |
OnGenerateNextValues | Generiert den nächsten Wert entsprechend dem Datengenerierungsalgorithmus. |
![]() |
OnGetOutputValue | Ruft den aktuellen Satz von Ergebnissen ab, der aus einem oder mehreren Werten besteht. |
![]() |
OnInitialize | Initialisiert den Generator. |
![]() |
OnNextValues | Generiert den nächsten Satz von Werten für eine Datenzeile. |
![]() |
OnSetInputValues | Legt die Eingabeeigenschaften eines Daten-Generators mithilfe der bereitgestellten Liste benannter Werte fest. |
![]() |
OnValidateInputs | Überprüft, ob alle erforderlichen Eingaben für den Datengenerator festgelegt wurden. |
![]() |
SetExtensionHandle | Legt das Erweiterungshandle mithilfe des angegebenen Erweiterungshandles fest. |
![]() |
SetInputValues | Legt die Eingabewerte für einen Datengenerator fest. |
![]() |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
![]() |
ValidateInputs | Überprüft, ob alle erforderlichen Eingaben für den Datengenerator festgelegt wurden. |
Zum Seitenanfang
Hinweise
Wenn die Standarddatengeneratoren nicht ausreichen, können Sie benutzerdefinierte Datengeneratoren erstellen. Um einen benutzerdefinierten Datengenerator zu erstellen, müssen Sie eine Klasse erstellen, die IGenerator implementiert oder von Generator erbt. Sie identifizieren die Klasse als Datengenerator, indem Sie sie mit GeneratorAttribute ergänzen.
Sie können einen benutzerdefinierten Designer für einen benutzerdefinierten Datengenerator erstellen oder DefaultGeneratorDesigner verwenden.
Die Basisklassenimplementierung erstellt Ausgaben, die auf den öffentlichen Eigenschaften basieren, die mit dem OutputAttribute gekennzeichnet sind. Die Eingaben werden mit dem InputAttribute festgelegt. Mit Attributen gekennzeichnete Eigenschaften bieten ein einfaches Verfahren zur Deklaration strikt typisierter Eingabe- und Ausgabewerte.
Beispiele
Die Standarddatengeneratoren können keine Daten generieren, um einige CHECK-Einschränkungen zu erfüllen. Wenn z. B. eine CHECK-Einschränkung erfordert, dass ein Datum in einem von zwei verschiedenen Bereichen liegt, können Sie nicht den DateTime-Standardgenerator verwenden. In diesem Beispiel wird ein benutzerdefinierter Datengenerator erstellt, der einer solchen Bedingung entspricht. Der Generator akzeptiert zwei unterschiedliche Bereiche als Eingabe und generiert ein Zufallsdatum, das in einem der beiden Bereiche liegt. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Daten-Generators für eine CHECK-Einschränkung.
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
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Siehe auch
Referenz
Microsoft.Data.Schema.Tools.DataGenerator-Namespace
Weitere Ressourcen
Creating Custom Data Generators
.gif)
.gif)
.gif)