Share via


Cenni preliminari su Progettazione relazionale oggetti

In Object Relational Designer (O/R Designer) è disponibile un'area di progettazione visiva per la creazione di classi di entità LINQ to SQL e associazioni (relazioni) in base agli oggetti in un database. In altre parole, O/R Designer viene utilizzato per creare un modello a oggetti in un'applicazione con mapping agli oggetti in un database e genera inoltre un oggetto DataContext fortemente tipizzato, utilizzato per inviare e ricevere dati tra le classi di entità e il database. In O/R Designer è disponibile anche una funzionalità per eseguire il mapping di stored procedure e funzioni ai metodi DataContext per la restituzione di dati e il popolamento delle classi di entità. Infine, in O/R Designer viene fornita la possibilità di progettare relazioni di ereditarietà tra le classi di entità.

O/R Designer genera il file .dbml che fornisce il mapping tra le classi LINQ to SQL e gli oggetti di database e genera anche l'oggetto DataContext tipizzato e le classi di entità.

Nell'area di progettazione di O/R Designer sono presenti due aree distinte: il riquadro delle entità a sinistra e il riquadro dei metodi a destra. Il riquadro delle entità rappresenta l'area di progettazione principale in cui vengono visualizzate le classi di entità, le associazioni e le gerarchie di ereditarietà. Il riquadro dei metodi rappresenta invece l'area di progettazione in cui vengono visualizzati i metodi DataContext con mapping a stored procedure e funzioni.

Nota

O/R Designer supporta attualmente solo database SQL Server 2000, SQL Server 2005, SQL Server 2008 e SQL Server Express. SQL Server Compact 3.5 è supportato da LINQ to SQL, ma non da Progettazione relazionale oggetti. Per ulteriori informazioni, vedere SQL Server Compact 3.5 e LINQ to SQL. Per informazioni su come ottenere SQL Server Express, vedere la sezione relativa a come ottenere SQL Server Express nell'argomento Procedura: installare database di esempio.

Apertura di Progettazione relazionale oggetti

È possibile aprire O/R Designer aggiungendo una nuova voce Classi LINQ to SQL a un progetto. Per informazioni dettagliate, vedere Procedura: aggiungere classi LINQ to SQL a un progetto (Progettazione relazionale oggetti).

Nota importanteImportante

O/R Designer rappresenta un'utilità di mapping relazionale a oggetti semplice, poiché supporta solo relazioni di mapping 1:1. In altre parole, una classe di entità può presentare solo una relazione di mapping 1:1 con una tabella o visualizzazione di database. Il mapping complesso, quale il mapping di una classe di entità a una tabella con join, non è attualmente supportato. Inoltre, la finestra di progettazione rappresenta un generatore di codice unidirezionale: pertanto, nel file di codice vengono riflesse solo le modifiche apportate all'area di progettazione. Le modifiche manuali apportate al file di codice non vengono riflesse in O/R Designer. Tutte le modifiche apportate manualmente nel file di codice vengono sovrascritte durante il salvataggio della finestra di progettazione e il codice viene rigenerato. Per informazioni su come aggiungere codice utente ed estendere le classi generate da O/R Designer, vedere Procedura: estendere il codice generato da Progettazione relazionale oggetti.

Creazione e configurazione dell'oggetto DataContext

Dopo l'aggiunta di un elemento Classi LINQ to SQL a un progetto e l'apertura di O/R Designer, l'area di progettazione vuota rappresenta un oggetto DataContext vuoto pronto per la configurazione. L'oggetto DataContext è configurato con le informazioni di connessione fornite dal primo elemento trascinato nell'area di progettazione. Pertanto, l'oggetto DataContext viene configurato utilizzando le informazioni di connessione del primo elemento rilasciato nell'area di progettazione. Per ulteriori informazioni sulla classe DataContext, vedere Metodi DataContext (Progettazione relazionale oggetti).

Creazione di classi di entità con mapping a tabelle e visualizzazioni di database

È possibile creare classi di entità con mapping a tabelle e visualizzazioni trascinando le tabelle e le visualizzazioni di database da Esplora server/Esplora database in O/R Designer. Come indicato nella sezione precedente, l'oggetto DataContext viene configurato con le informazioni di connessione fornite dal primo elemento trascinato nell'area di progettazione. Se a O/R Designer viene aggiunto un elemento successivo che utilizza una connessione diversa, è possibile modificare la connessione per l'oggetto DataContext. Per ulteriori informazioni, vedere Procedura: creare classi LINQ to SQL con mapping a tabelle e visualizzazioni (Progettazione relazionale oggetti).

Creazione di metodi DataContext che chiamano stored procedure e funzioni

È possibile creare metodi DataContext che chiamano (ovvero, con mapping a) stored procedure e funzioni trascinandole da Esplora server/Esplora database in O/R Designer. Le stored procedure e le funzioni vengono aggiunte a O/R Designer come metodi dell'oggetto DataContext.

Nota

Quando si trascinano stored procedure e funzioni da Esplora server/Esplora database in O/R Designer, il tipo restituito del metodo DataContext generato varia a seconda della posizione in cui si rilascia l'elemento. Per ulteriori informazioni, vedere Metodi DataContext (Progettazione relazionale oggetti).

Configurazione di un oggetto DataContext in modo che utilizzi stored procedure per salvare i dati tra le classi di entità e un database

Come indicato in precedenza, è possibile creare metodi DataContext che chiamano stored procedure e funzioni. Inoltre, è anche possibile assegnare stored procedure utilizzabili per il comportamento in fase di esecuzione LINQ to SQL predefinito che esegue i comandi di inserimento, aggiornamento ed eliminazione. Per ulteriori informazioni, vedere Procedura: assegnare stored procedure per l'esecuzione dei comandi di aggiornamento, inserimento ed eliminazione (Progettazione relazionale oggetti).

Ereditarietà e Progettazione relazionale oggetti

Analogamente ad altri oggetti, le classi LINQ to SQL possono utilizzare l'ereditarietà ed essere derivate da altre classi. In un database le relazioni di ereditarietà vengono create in diversi modi. O/R Designer supporta il concetto di ereditarietà a tabella singola come viene spesso implementato nei sistemi relazionali. Per ulteriori informazioni, vedere Procedura: configurare l'ereditarietà utilizzando Progettazione relazionale oggetti.

Query LINQ to SQL

Le classi di entità create da O/R Designer vengono progettate per l'utilizzo con LINQ (Language-Integrated Query). Per ulteriori informazioni, vedere Procedura: eseguire query per informazioni (LINQ to SQL).

Separazione del codice delle classi di entità e DataContext generate in diversi spazi dei nomi

In O/R Designer sono disponibili le proprietà Context Namespace ed Entity Namespace di DataContext. Queste proprietà determinano lo spazio dei nomi in cui viene generato il codice delle classi di entità e DataContext. Per impostazione predefinita, tali proprietà sono vuote e le classi di entità e DataContext vengono generate nello spazio dei nomi dell'applicazione. Per generare il codice in uno spazio dei nomi diverso da quello dell'applicazione, immettere un valore nelle proprietà Context Namespace e/o Entity Namespace.

Vedere anche

Attività

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

Procedura: assegnare stored procedure per l'esecuzione dei comandi di aggiornamento, inserimento ed eliminazione (Progettazione relazionale oggetti)

Riferimenti

Guida generale per programmatori LINQ

Concetti

Novità dello sviluppo di applicazioni di dati

Altre risorse

LINQ to SQL

LINQ to ADO.NET

Progettazione relazionale oggetti