Disattivare i vincoli durante il riempimento di un set di dati nelle applicazioni .NET Framework

Nota

I set di dati e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le applicazioni vengono disconnesse dal database. Sono particolarmente utili per le applicazioni che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Anche se i set di dati hanno dimostrato di essere una tecnologia molto efficace, è consigliabile che le nuove applicazioni .NET usino Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e ha un'interfaccia di programmazione più semplice.

Se un set di dati contiene vincoli, ad esempio vincoli di chiave esterna, possono generare errori correlati all'ordine delle operazioni eseguite sul set di dati. Ad esempio, il caricamento di record figlio prima del caricamento di record padre correlati può violare un vincolo e causare un errore. Non appena si carica un record figlio, il vincolo controlla la presenza del record padre correlato e genera un errore.

Se non esistesse alcun meccanismo per consentire la sospensione temporanea dei vincoli, viene generato un errore ogni volta che si tenta di caricare un record nella tabella figlio. Un altro modo per sospendere tutti i vincoli in un set di dati consiste nell'usare le BeginEditproprietà , e EndEdit .

Nota

Gli eventi di convalida (ad esempio, ColumnChanging e RowChanging) non verranno generati quando i vincoli vengono disattivati.

Per sospendere i vincoli di aggiornamento a livello di codice

  • L'esempio seguente illustra come disattivare temporaneamente il controllo dei vincoli in un set di dati:

    dataSet1.EnforceConstraints = false;
    // Perform some operations on the dataset
    dataSet1.EnforceConstraints = true;
    

Per sospendere i vincoli di aggiornamento tramite Progettazione set di dati

  1. Aprire il set di dati in Progettazione DataSet. Per altre informazioni, vedere Procedura dettagliata: Creazione di un set di dati in Progettazione set di dati.

  2. Nella finestra Proprietà impostare la proprietà EnforceConstraints su false.