Condividi tramite


Strumenti LINQ to SQL in Visual Studio

LINQ to SQL è stata 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. Usare LINQ to SQL quando si gestisce un'applicazione legacy già usata o in applicazioni semplici che usano SQL Server e non richiedono il mapping a più tabelle. In generale, le nuove applicazioni devono usare Entity Framework quando è necessario un livello di mapping relazionale a oggetti.

Installare gli strumenti LINQ to SQL

In Visual Studio si creano classi LINQ to SQL che rappresentano le tabelle SQL usando Object Relational Designer (O/R Designer). La finestra di progettazione O/R è l'interfaccia utente per la modifica dei file .dbml. La modifica dei file .dbml con un'area di progettazione richiede gli strumenti LINQ to SQL che non sono installati per impostazione predefinita come parte di uno dei carichi di lavoro di Visual Studio.

Per installare gli strumenti LINQ to SQL, avviare il programma di installazione di Visual Studio, scegliere Modifica, quindi selezionare la scheda Componenti individuali e quindi selezionare strumenti LINQ to SQL nella categoria Strumenti di Codice.

Informazioni su O/R Designer

Il progettista O/R ha due aree distinte: il riquadro delle entità a sinistra e il riquadro dei metodi a destra. Il riquadro delle entità è l'area di progettazione principale che visualizza le classi di entità, le associazioni e le gerarchie di ereditarietà. Il riquadro dei metodi è l'area di progettazione che visualizza i metodi DataContext mappati a stored procedure e funzioni.

Il Designer O/R fornisce un'area di progettazione visiva per la creazione di classi e associazioni di entità LINQ to SQL basate su oggetti in un database. In altre parole, il Designer O/R crea un modello a oggetti in un'applicazione che esegue il mapping agli oggetti in un database. Genera inoltre un DataContext fortemente tipizzato che invia e riceve dati tra le classi di entità e il database. Il progettista O/R fornisce anche funzionalità per mappare le stored procedure e le funzioni ai metodi DataContext per la restituzione dei dati e il popolamento delle classi di entità. Infine, Designer O/R offre la possibilità di progettare relazioni di ereditarietà tra classi di entità.

Aprire la finestra di progettazione O/R

Per aggiungere un modello di entità LINQ to SQL al progetto, scegliere Progetto>Aggiungi nuovo elementoe quindi selezionare classi LINQ to SQL dall'elenco di elementi del progetto:

screenshot che mostra le classi LINQ to SQL.

Visual Studio crea un file .dbml e lo aggiunge alla soluzione. Si tratta del file di mapping XML e dei relativi file di codice.

Screenshot che mostra le classi LINQ to SQL in Esplora Soluzioni.

Quando si seleziona il file di .dbml, Visual Studio visualizza l'area di progettazione O/R che consente di creare visivamente il modello. La figura seguente mostra la finestra di progettazione dopo che le tabelle Customers e Orders di Northwind sono state trascinate da Esplora Server . Si noti la relazione tra le tabelle.

Screenshot che mostra LINQ to SQL Designer.

Importante

Il Designer O/R è un semplice mapper relazionale degli oggetti perché supporta solo le relazioni di mapping 1:1. In altre parole, una classe di entità può avere solo una relazione di mapping 1:1 con una tabella o una vista di database. La mappatura complessa, come la mappatura di una classe di entità su una tabella unita, non è supportata; utilizzare l'Entity Framework per la mappatura complessa. Inoltre, il designer è un generatore di codice unidirezionale. Ciò significa che solo le modifiche apportate all'area di progettazione vengono riflesse nel file di codice. Le modifiche manuali al file di codice non si riflettono nel Designer O/R. Tutte le modifiche apportate manualmente nel file di codice vengono sovrascritte quando il designer viene salvato e il codice viene rigenerato. Per informazioni su come aggiungere codice utente ed estendere le classi generate dalla finestra di progettazione O/R , vedere Procedura: Estendere il codice generato da O/R Designer.

Creare e configurare il DataContext

Dopo aver aggiunto un elemento LINQ to SQL Classes a un progetto e aprireO/R Designer, l'area di progettazione vuota rappresenta un vuoto pronto per la configurazione. il DataContext viene configurato con le informazioni di connessione fornite dal primo elemento trascinato nell'area di progettazione. Pertanto, il DataContext viene configurato utilizzando le informazioni di connessione del primo elemento rilasciato nell'area di progettazione. Per altre informazioni sulla classe DataContext, vedere metodi DataContext (O/R Designer).

Creare classi di entità mappate a tabelle e viste di database

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

Creare metodi DataContext che chiamano Stored Procedure e Funzioni

È possibile creare DataContext metodi che chiamano (che mappano su) le stored procedure e funzioni trascinandoli da Esplora Server o Esplora Database sulla finestra di progettazione O/R . Le stored procedure e le funzioni vengono aggiunte al di progettazione O/R come metodi del .

Nota

Quando si trascinano stored procedure e funzioni da esplora server o esplora database nel progettazione O/R, il tipo restituito del metodo DataContext generato varia a seconda della posizione in cui si rilascia l'elemento. Per ulteriori informazioni, vedere i metodi DataContext (O/R Designer) .

Configurare DataContext per utilizzare le stored procedure per salvare dati tra le classi di entità e il database.

Puoi creare metodi DataContext che chiamano stored procedure e funzioni, come indicato in precedenza. Inoltre, è anche possibile assegnare stored procedure usate per il comportamento di runtime predefinito di LINQ to SQL, che esegue inserimenti, aggiornamenti ed eliminazioni. Per ulteriori informazioni, vedere Come assegnare stored procedure per eseguire operazioni di aggiornamento, inserimento ed eliminazione (O/R Designer).

Ereditarietà e progettazione O/R

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. Il designer O/R supporta il concetto di ereditarietà a tabella singola, come viene spesso implementato nei sistemi relazionali. Per altre informazioni, vedere Procedura: Configurare l'ereditarietà tramite Progettazione O/R.

Query LINQ to SQL

Le classi di entità create dal Designer O/R sono destinate per l'uso con LINQ (Language Integrated Query). Per ulteriori informazioni, vedere Come ottenere informazioni.

Separare il codice della classe DataContext e dell'entità generato in namespace differenti

La progettazione O/R fornisce le proprietà spazio dei nomi del contesto di e spazio dei nomi delle entità nel . Queste proprietà determinano lo spazio dei nomi in cui vengono generati i DataContext e il codice della classe di entità. Per impostazione predefinita, queste proprietà sono vuote e le DataContext e le classi di entità 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à Spazio dei nomi del contesto e/o Spazio dei nomi dell'entità.

Contenuto di riferimento

Vedere anche