Condividi tramite


Ereditarietà delle classi di dati (Progettazione relazionale oggetti)

Analogamente ad altri oggetti, le classi LINQ to SQL possono utilizzare l'ereditarietà ed essere derivate da altre classi. Nel codice è possibile specificare le relazioni di ereditarietà tra oggetti dichiarando che una classe eredita da un'altra. In un database le relazioni di ereditarietà vengono create in diversi modi. Object Relational Designer (O/R Designer) supporta il concetto di ereditarietà a tabella singola in quanto viene spesso implementato nei sistemi relazionali.

Nell'ereditarietà a tabella singola è presente una singola tabella di database che contiene colonne per le classi base e derivate. Insieme ai dati relazionali, una colonna discriminante contiene il valore che determina la classe a cui appartiene uno specifico record. Ad esempio, si consideri una tabella Persons che contiene tutte le persone impiegate in una società, alcune delle quali sono dipendenti mentre altre sono manager. La tabella Persons contiene una colonna denominata Type, che presenta un valore 1 per i manager e un valore 2 per i dipendenti, e che costituisce la colonna discriminante. In questo scenario, è possibile creare una sottoclasse di dipendenti e popolare la classe solo con i record che hanno un valore 2 nella colonna Type.

Quando si configura l'ereditarietà nelle classi dell'entità utilizzando O/R Designer, trascinare due volte la singola tabella che contiene i dati di ereditarietà sulla finestra di progettazione: una volta per ogni classe nella gerarchia di ereditarietà. Dopo avere aggiunto le tabelle alla finestra di progettazione, connetterle con un elemento di ereditarietà della casella degli strumenti Progettazione relazionale oggetti, quindi impostare le quattro proprietà di ereditarietà nella finestra Proprietà.

Proprietà di ereditarietà

Nella tabella seguente sono elencate le proprietà di ereditarietà e le rispettive descrizioni:

Proprietà

Descrizione

Proprietà Discriminator

Proprietà (mappata alla colonna) che determina a quale classe appartiene il record corrente.

Valore discriminante classe base

Valore (nella colonna definita come proprietà Discriminator) che determina che un record fa parte della classe base.

Valore discriminante classe derivata

Valore (nella proprietà definita come proprietà Discriminator) che determina che un record fa parte della classe derivata.

Valore predefinito di ereditarietà

Classe da popolare quando il valore nella proprietà definita come Proprietà Discriminator non corrisponde a Valore discriminante classe base o a Valore discriminante classe derivata.

La creazione di un modello a oggetti che utilizza l'ereditarietà e corrisponde ai dati relazionali può generare una certa confusione. Questo argomento fornisce informazioni sui concetti di base e sulle proprietà singole richieste per la configurazione dell'ereditarietà. Negli argomenti seguenti viene fornita una spiegazione più chiara di come configurare l'ereditarietà con O/R Designer.

Argomento

Descrizione

Procedura: configurare l'ereditarietà utilizzando Progettazione relazionale oggetti

Viene descritto come configurare le classi di entità che utilizzano l'ereditarietà mediante O/R Designer.

Procedura dettagliata: creazione di classi LINQ to SQL utilizzando l'ereditarietà a tabella singola (Progettazione relazionale oggetti)

Vengono fornite istruzioni dettagliate per la configurazione delle classi di entità che utilizzano l'ereditarietà a tabella singola con O/R Designer.

Vedere anche

Attività

Procedura dettagliata: creazione di classi LINQ to SQL (Progettazione relazionale oggetti)

Procedura dettagliata: creazione di classi LINQ to SQL utilizzando l'ereditarietà a tabella singola (Progettazione relazionale oggetti)

Concetti

Cenni preliminari su Progettazione relazionale oggetti

Guida introduttiva (LINQ to SQL)