2009-10-25 8 views
6

Sono appena iniziato con i progetti del database di Visual Studio e amo i piani di generazione dei dati che posso creare con esso. Tuttavia, in uno dei miei progetti ho bisogno di compilare una tabella di ricerca con valori specifici. Poiché esiste una relazione di chiave esterna tra la tabella di ricerca e un'altra tabella, non riesco a rimuovere la tabella di ricerca dal piano di generazione dati senza rimuovere l'altra tabella dal piano. Ma poi non posso generare alcun dato per l'altra tabella.Creazione di un piano di generazione dati che include la tabella di ricerca corretta Valori

Come posso a) specificare i dati esatti che voglio che il generatore usi quando aggiungo dati alla tabella di ricerca, oppure b) fare in modo che il generatore non aggiunga nuovi valori alla tabella ma utilizzi invece valori già esistenti?

Grazie!

risposta

4

Ecco il mio assumere costante generazione di dati in Visual Studio 2008

Lo strumento di creazione dei dati in Visual Studio 2008 Edition dati è un ottimo strumento per popolare il database con le informazioni senza senso da utilizzare per le unit test, ma quando si arriva il momento di fare test di integrazione è spesso importante avere il piano di generazione dei dati per ricreare un set di dati coerente nelle tabelle chiave (come le tabelle di ricerca utilizzate nelle chiavi esterne che sono spesso speculari come Enum nelle soluzioni C# o VB.Net). Fortunatamente, lo strumento di generazione dei dati include il generatore sequenziale di dati. Questo generatore seleziona i record dall'origine dati specificata e utilizza i risultati per popolare la tabella.

Quindi, come possiamo utilizzarlo? Nelle nostre soluzioni di database, includiamo due database: il database effettivo su cui stiamo lavorando e un database di datageneration. Per le tabelle che ci servono per popolare consistenly, abbiamo duplicare la tabella dello schema & nel database datageneration (al netto di eventuali indici/chiavi/vincoli/trigger, ecc), e quindi utilizzare lo script post-distribuzione per il database per creare i record desiderati . Per ridurre la duplicazione degli script popolato, lo script post-distribuzione per il database reale punta allo script di popolamento della datagenration mediante un percorso relativo. Ciò significa anche che queste tabelle avranno gli stessi record in esse, se hai appena implementato il database, o semplicemente esegui il piano di generazione dati, il che rende la vita più facile per tutti i membri del team.

Full details here

1

Questo è il modo vecchio - ma è sufficiente impostare il numero di colonne da 0 nella tabella di ricerca, e non eliminare i dati esistenti.

+2

Questo non sembra funzionare in Visual Studio 2010. 'generazione dati non riuscita a causa del seguente eccezione: Colonna 'MyForeignKeyId' non consente DBNull.Value ..' si è verificato 1 volta (s). –

+0

È ancora necessario mantenere l'integrità della chiave esterna. Nel caso della domanda dell'OP - ci sono già dati nella tabella di ricerca che non devono essere cancellati. –

+0

Sì. Quando si esegue il piano di generazione dati, non cancellare mai i dati esistenti e impostare il numero di righe da inserire a zero per mantenere intatte le tabelle del dominio. –