Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Rappresenta la classe base astratta per i generatori di dati.
Gerarchia di ereditarietà
System.Object
Microsoft.Data.Schema.Tools.DataGenerator.Generator
Spazio dei nomi: Microsoft.Data.Schema.Tools.DataGenerator
Assembly: Microsoft.Data.Schema.Tools (in Microsoft.Data.Schema.Tools.dll)
Sintassi
'Dichiarazione
<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
Il tipo Generator espone i seguenti membri.
Costruttori
| Nome | Descrizione | |
|---|---|---|
![]() |
Generator | Chiamato dai costruttori nelle classi derivate per inizializzare la classe Generator. |
In alto
Proprietà
| Nome | Descrizione | |
|---|---|---|
![]() |
Collation | Ottiene o imposta le regole di confronto, o l'ordinamento linguisticamente adatto, per questa colonna. |
![]() |
Column | Ottiene o imposta la colonna. |
![]() |
ColumnName | Ottiene o imposta il nome della colonna. |
![]() |
Constraints | Ottiene o imposta le informazioni sui vincoli CHECK per la colonna. |
![]() |
DefaultLocaleId | Ottiene o imposta l'ID delle impostazioni locali. |
![]() |
DefaultValue | Ottiene o imposta il valore predefinito della colonna. |
![]() |
ExtensionHandle | Ottiene l'handle di estensione. |
![]() |
MaxLength | Ottiene o imposta la lunghezza massima per i valori in questa colonna. |
![]() |
Nullable | Ottiene o imposta un valore che indica se la colonna può essere impostata su nullriferimento null (Nothing in Visual Basic). |
![]() |
OutputKey | Ottiene o imposta la chiave utilizzata per recuperare i valori di output. |
![]() |
PercentageNull | Ottiene o imposta la percentuale dei valori generati per questa colonna che l'utente desidera impostare su nullriferimento null (Nothing in Visual Basic).La percentuale è espressa come intero compreso tra 0 e 100. |
![]() |
Precision | Ottiene o imposta la precisione dei dati. |
![]() |
RowsToInsert | Ottiene o imposta il numero di righe da generare. |
![]() |
Scale | Ottiene o imposta la scala dei dati. |
![]() |
SchemaName | Ottiene o imposta il nome dello schema al quale appartiene la colonna. |
![]() |
Seed | Ottiene o imposta il valore di inizializzazione.È possibile utilizzare il valore di inizializzazione per inizializzare un algoritmo di generazione di dati casuali deterministico. |
![]() |
TableName | Ottiene o imposta il nome della tabella alla quale appartiene la colonna. |
![]() |
TargetType | Ottiene o imposta il tipo di dati di destinazione della colonna. |
![]() |
Unique | Ottiene o imposta un valore che indica se la colonna che viene generata fa parte di un vincolo univoco o di un vincolo di chiave primaria. |
In alto
Metodi
| Nome | Descrizione | |
|---|---|---|
![]() |
Dispose() | Rilascia tutte le risorse utilizzate dall'oggetto Generator. |
![]() |
Dispose(Boolean) | Rilascia le risorse non gestite utilizzate dall'oggetto Generator ed eventualmente rilascia le risorse gestite. |
![]() |
Equals | Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object) |
![]() |
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) |
![]() |
GenerateNextValues | Genera il valore successivo in base all'algoritmo di generazione dei dati. |
![]() |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) |
![]() |
GetOutputValue | Recupera un valore di output utilizzando la proprietà OutputKey. |
![]() |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
![]() |
Initialize | Inizializza il generatore di dati. |
![]() |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) |
![]() |
OnGenerateNextValues | Genera il valore successivo in base all'algoritmo di generazione dei dati. |
![]() |
OnGetOutputValue | Recupera il set corrente di risultati costituito da uno o più valori. |
![]() |
OnInitialize | Inizializza il generatore. |
![]() |
OnNextValues | Genera il set di valori successivo per una riga di dati. |
![]() |
OnSetInputValues | Imposta le proprietà di input di un generatore di dati utilizzando l'elenco di valori denominati specificato. |
![]() |
OnValidateInputs | Verifica che tutti gli input obbligatori sul generatore di dati siano stati impostati. |
![]() |
SetExtensionHandle | Imposta l'handle di estensione utilizzando l'handle di estensione specificato. |
![]() |
SetInputValues | Imposta i valori di input per un generatore di dati. |
![]() |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
![]() |
ValidateInputs | Verifica che tutti gli input obbligatori sul generatore di dati siano stati impostati. |
In alto
Note
Se i generatori di dati standard non sono sufficienti, è possibile creare generatori di dati personalizzati. Per creare un generatore di dati personalizzato, è necessario creare una classe che implementa l'interfaccia IGenerator o eredita dalla classe Generator. Per identificare la classe come generatore di dati, è necessario decorarla con la classe GeneratorAttribute.
È possibile creare una finestra di progettazione personalizzata per un generatore di dati personalizzato oppure utilizzare la classe DefaultGeneratorDesigner.
L'implementazione della classe base costruisce output basati su proprietà pubbliche contrassegnate con la classe OutputAttribute. Gli input vengono impostati utilizzando la classe InputAttribute. L'utilizzo di proprietà contrassegnate con attributi offre un semplice meccanismo per dichiarare valori di input e output fortemente tipizzati.
Esempi
I generatori di dati standard non possono generare dati per soddisfare alcuni vincoli CHECK. Se ad esempio un vincolo CHECK richiede che una data sia compresa in uno di due intervalli distinti, non sarà possibile utilizzare il generatore DateTime standard. Nell'esempio seguente viene creato un generatore di dati personalizzato che consente di soddisfare tale vincolo. Il generatore accetta due intervalli distinti come input e genera una data casuale appartenente a uno dei due intervalli. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di un generatore dati personalizzato per un vincolo CHECK.
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
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.Data.Schema.Tools.DataGenerator
Altre risorse
Procedura dettagliata: creazione di un generatore dati personalizzato per un vincolo CHECK
Creating Custom Data Generators
Cenni preliminari sulla estensibilità dei generatori di dati
.gif)
.gif)
.gif)