LINQ to SQL Tools in Visual Studio

 

Data di pubblicazione: aprile 2016

LINQ to SQL è la prima tecnologia di mapping relazionale a oggetti rilasciata da Microsoft. Funziona bene in scenari di base e continua a essere supportato in Visual Studio, ma non è più in fase di sviluppo attivo. Utilizzo di LINQ to SQL per la manutenzione di un'applicazione legacy che sta già utilizzando, o in semplici applicazioni che utilizzano SQL Server e non necessitano del mapping di più tabelle. In generale, le nuove applicazioni devono utilizzare Entity Framework quando è necessario un livello di mapping relazionale a oggetti.

In Visual Studio creare classi LINQ to SQL che rappresentano le tabelle SQL utilizzando il O/R Designer.

Il O/R Designer sono presenti due aree distinte nell'area di progettazione: 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à. Nel riquadro dei metodi è l'area di progettazione che consente di visualizzare il DataContext metodi con mapping a stored procedure e funzioni.

Il Object Relational Designer (O/R Designer) fornisce un'area di progettazione visiva per la creazione di LINQ to SQL classi di entità e associazioni (relazioni) basate sugli oggetti in un database. In altre parole, O/R Designer viene usato per creare un modello a oggetti in un'applicazione con mapping agli oggetti in un database Viene inoltre generato l'oggetto fortemente tipizzato DataContext utilizzato per inviare e ricevere dati tra le classi di entità e il database. Il O/R Designer inoltre fornisce funzionalità per il mapping di stored procedure e funzioni ai DataContext metodi 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à.

Apertura di Progettazione relazionale oggetti

Per aggiungere un LINQ al modello di entità SQL al progetto, scegliere progetto | Aggiungi nuovo elemento e quindi scegliere classi LINQ to SQL dall'elenco di elementi di progetto:

Classi LINQ to SQL

Visual Studio crea un file con estensione dbml e aggiungerlo alla soluzione. Questo è il file di mapping XML e i relativi file di codice correlate.

Classi LINQ to SQL in Esplora soluzioni

Quando si seleziona il file. dbml, Visual Studio Mostra l'area di Progettazione relazionale consente di creare visivamente il modello. Nella figura seguente viene illustrata la finestra di progettazione dopo che sono stati trascinati tabella Northwind Customers e Orders da Esplora Server. Si noti la relazione tra le tabelle.

Progettazione LINQ to SQL

Importante

Il O/R Designer è un mapper 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 unita in join, non è supportato. utilizzo di Entity Framework per il mapping complesso. 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 il codice utente ed estendere le classi generate dal O/R Designer, vedere procedura: estendere il codice generato da Progettazione relazionale.

Creazione e configurazione dell'oggetto DataContext

Dopo aver aggiunto un classi LINQ to SQL elemento a un progetto e aprire il O/R Designer, l'area di progettazione vuota rappresenta un oggetto vuoto DataContext può essere configurato. il DataContext è configurato con le informazioni di connessione fornite dal primo elemento trascinato nell'area di progettazione. Pertanto, il DataContext è configurata con le informazioni di connessione del primo elemento rilasciato nell'area di progettazione. Per ulteriori informazioni sui DataContext classe, vedere metodi DataContext (O/R Designer).

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

È possibile creare classi di entità mappate a tabelle e visualizzazioni trascinando le tabelle di database e le viste da Esplora Server/Esplora Database nella O/R Designer. Come indicato nella sezione precedente di DataContext è configurato con le informazioni di connessione fornite dal primo elemento trascinato nell'area di progettazione. Se viene aggiunto un elemento successivo che usa una connessione diversa per il O/R Designer, è possibile modificare la connessione per il DataContext. Per ulteriori informazioni, vedere procedura: creare classi LINQ to SQL mappate a tabelle e visualizzazioni (O/R Designer).

Creazione di metodi DataContext che chiamano stored procedure e funzioni

È possibile creare DataContext metodi che chiamano (viene eseguito il mapping a) stored procedure e funzioni trascinandole da Esplora Server/Esplora Database nella O/R Designer. Stored procedure e funzioni vengono aggiunti per il O/R Designer come metodi del DataContext.

Nota

Quando si trascinano stored procedure e funzioni da Esplora Server/Esplora Database nella O/R Designer, il tipo restituito dell'oggetto generato DataContext metodo varia a seconda della posizione in cui si rilascia l'elemento. Per ulteriori informazioni, vedere metodi DataContext (O/R Designer).

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

Come affermato in precedenza, è possibile creare DataContext metodi 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 eseguire aggiornamenti, inserimenti ed eliminazioni (O/R Designer).

Ereditarietà e Progettazione relazionale oggetti

Analogamente ad altri oggetti, le classi LINQ to SQL possono usare 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à tramite O/R Designer.

Query [LINQ to SQL]

Le classi di entità create dal O/R Designer sono progettati per l'utilizzo con LINQ (Language-Integrated Query). Per ulteriori informazioni, vedere procedura: eseguire Query per informazioni.

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

Il O/R Designer fornisce il Context Namespace e Entity Namespace le proprietà di DataContext. Queste proprietà determinano quale spazio dei nomi di DataContext e viene generato il codice di classe di entità in. Per impostazione predefinita, tali proprietà sono vuote e DataContext e le classi di entità vengono generate nello spazio dei nomi dell'applicazione. Per generare il codice in uno spazio dei nomi diversi da spazio dei nomi dell'applicazione, immettere un valore nel Context Namespace e/o Entity Namespace proprietà.

In questa sezione

Metodi DataContext (O/R Designer)
Spiega come DataContext metodi e come crearli.

Ereditarietà delle classi di dati (O/R Designer)
Vengono illustrati il concetto di ereditarietà a tabella singola e le relative modalità di implementazione in O/R Designer.

Procedura: creare LINQ to SQL classi mappate a tabelle e visualizzazioni (O/R Designer)
Viene descritto come creare classi di entità con mapping a tabelle e visualizzazioni in un database.

Procedura: creare un'associazione (relazione) tra classi LINQ to SQL (O/R Designer)
Viene descritto come creare una relazione tra classi di entità LINQ to SQL.

Procedura: creare metodi DataContext mappati a stored procedure e funzioni (O/R Designer)
Viene descritto come creare DataContext metodi che eseguono stored procedure o funzioni quando vengono chiamati.

Procedura: assegnare stored procedure per eseguire aggiornamenti, inserimenti ed eliminazioni (O/R Designer)
Viene descritto come configurare un DataContext per utilizzare le stored procedure durante il salvataggio di dati da entità classi nuovamente in un database.

Procedura: modificare il tipo restituito di un metodo DataContext (O/R Designer)
Viene descritto come impostare il tipo restituito di un DataContext metodo deve essere il tipo di una classe di entità o un tipo generato automaticamente creato da O/R Designer.

Procedura: aggiungere la convalida alle classi di entità
Viene descritto come generare metodi parziali che consentano l'aggiunta di codice durante le modifiche delle proprietà e gli aggiornamenti delle classi di entità.

Procedura: attivare e disattivare (O/R Designer) la pluralizzazione
Viene descritto come attivare e disattivare la ridenominazione automatica delle classi aggiunte a O/R Designer.

Procedura: configurare l'ereditarietà tramite O/R Designer
Viene descritto come configurare le classi di entità usando l'ereditarietà a tabella singola con O/R Designer.

Procedura: estendere il codice generato da O/R Designer
Viene descritto come e dove aggiungere codice che non verrà sovrascritto quando le modifiche agli oggetti in Progettazione relazionale oggetti determinano una rigenerazione del codice.

Procedura dettagliata: Creazione di classi LINQ to SQL tramite ereditarietà a tabella singola (O/R Designer)
Vengono fornite istruzioni dettagliate per la configurazione delle classi di entità usando l'ereditarietà a tabella singola con O/R Designer.

Procedura dettagliata: Personalizzazione dell'inserimento, aggiornamento ed eliminazione di comportamento delle classi di entità
Vengono fornite istruzioni dettagliate per la configurazione di un DataContext per utilizzare le stored procedure durante il salvataggio di dati da entità classi nuovamente in un database.

Contenuto di riferimento

System.Linq

System.Data.Linq

Vedere anche

Strumenti di dati di Visual Studio per .NET
Domande frequenti
LINQ to SQL
L'accesso ai dati in Visual Studio