Creazione di classi LINQ to SQL mediante Progettazione relazionale oggetti

Aggiornamento: novembre 2007

È possibile utilizzare Progettazione relazionale oggetti per eseguire il mapping delle classi LINQ to SQL alle tabelle di un database. Queste classi mappate sono note anche come classi di entità. Le proprietà di una classe di entità eseguono il mapping alle colonne della tabella ed è possibile associare i dati ai controlli in un Windows Form. Per ulteriori informazioni su LINQ to SQL, vedere Utilizzo di LINQ in C#.

Prerequisiti

  • Se SQL Server Express Edition non è stato installato al momento dell'installazione di Visual C# Express Edition, è necessario eseguire questa operazione prima di proseguire. I database SQL Server Compact 3.5 non sono attualmente supportati in LINQ to SQL. Per informazioni su come ottenere SQL Server Express Edition, vedere la sezione Come ottenere SQL Server Express Edition nell'argomento Procedura: installare database di esempio.

  • È inoltre necessario disporre dell'accesso alla versione SQL Server del database di esempio Northwind. Per informazioni su come ottenere e installare questo database, vedere Procedura: installare database di esempio.

Apertura di Progettazione relazionale oggetti

Per aprire Progettazione relazionale oggetti

  1. Scegliere Nuovo progetto dal menu File.

  2. Nella finestra di dialogo Nuovo progetto fare clic su Applicazione Windows Form, assegnare al progetto il nome LINQToSQLSample, quindi scegliere OK.

    Verrà aperto un nuovo progetto Windows Form.

  3. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  4. Fare clic sul modello Classi LINQ to SQL e digitare NorthwindSample.dbml nella casella Nome.

  5. Scegliere Aggiungi.

    Viene aggiunto al progetto un file di Classi LINQ to SQL vuoto (NorthwindSample.dbml) e viene aperto O/R Designer.

In O/R Designer sono presenti due aree 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à definite nel file. Il riquadro dei metodi rappresenta invece l'area di progettazione in cui vengono visualizzati i metodi DataContext mappati a stored procedure e funzioni. È possibile nascondere il riquadro dei metodi facendo clic con il pulsante destro del mouse su O/R Designer e scegliendo Nascondi riquadro metodi. In questa lezione non verrà utilizzato il riquadro dei metodi, ma per ulteriori informazioni è possibile vedere Metodi DataContext (Progettazione relazionale oggetti).

Fare clic sull'area di progettazione principale e verificare che il nome sia NorthwindSampleDataContext nella finestra Proprietà. È possibile creare classi di entità trascinando le tabelle di database da Esplora database nell'area di O/R Designer. È necessario però creare prima una connessione al database. Questo processo è analogo a quello descritto in Procedura: connettersi a un database (C#), con la differenza che in questo caso verrà utilizzato un database SQL Server Express.

Per connettersi al database di esempio Northwind

  1. Scegliere Altre finestre dal menu Visualizza, quindi selezionare Esplora database.

    Verrà visualizzato Esplora database.

  2. Fare clic sul pulsante Connetti al database.

    Verrà visualizzata la finestra di dialogo Aggiungi connessione.

  3. Nella finestra di dialogo Aggiungi connessione verificare che l' Origine dati sia File di database Microsoft SQL Server.

  4. Fare clic su Sfoglia e selezionare il database Northwind.mdf.

  5. Scegliere Test connessione per verificare che la connessione sia stata stabilita correttamente.

  6. Scegliere OK per chiudere la finestra di dialogo Aggiungi connessione.

Creazione di classi di entità

Le tabelle nel database Northwind sono ora visibili in Esplora database. È possibile trascinare le tabelle da Esplora database in O/R Designer. Vengono automaticamente create le classi di entità contenenti le proprietà che eseguono il mapping alle colonne delle tabelle selezionate.

Per creare le classi di entità

  1. In Esplora database espandere Northwind.mdf, quindi espandere Tabelle.

  2. Trascinare Customers da Esplora database nell'area di O/R Designer. Se viene richiesto se si desidera copiare il file di dati nel progetto, scegliere Sì.

    Viene creata una classe di entità denominata Customer. Tale classe presenta proprietà corrispondenti alle colonne della tabella Customers.

    Nota:

    Il nome della classe di entità è Customer, anziché Customers. Questo comportamento di ridenominazione viene definito pluralizzazione e può essere attivato o disattivato nella finestra di dialogo Opzioni. Per ulteriori informazioni, vedere Finestra di dialogo Opzioni (Visual Studio) e Procedura: attivare e disattivare la pluralizzazione (Progettazione relazionale oggetti).

  3. Trascinare Orders da Esplora database nell'area di O/R Designer.

    Viene creata una classe di entità denominata Order La classe Order ha una relazione (nota come associazione) con la classe di entità Customer. Le proprietà della classe Order corrispondono alle colonne della tabella Orders.

Dopo la creazione delle classi di entità, è possibile aggiungerle alla finestra Origini dati eseguendo la Configurazione guidata origine dati.

Per aggiungere una classe di entità come origine dati di un oggetto nella finestra Origini dati

  1. Scegliere Compila soluzione dal menu Compila.

  2. Scegliere Mostra origini dati dal menu Dati.

  3. Nella finestra Origini dati fare clic sul pulsante Aggiungi nuova origine dati.

  4. Nella pagina Seleziona un tipo di origine dati fare clic su Oggetto, quindi su Avanti.

  5. Espandere LINQToSQLSample, quindi fare clic sulla classe Customer.

    Nota:

    Se la classe Customer non è disponibile, fare clic su Annulla, compilare il progetto ed eseguire nuovamente la procedura guidata.

  6. Fare clic su Fine per creare l'origine dati e aggiungere la classe di entità Customer alla finestra Origini dati.

Associazione dei controlli in un Windows Form alle classi di entità

È possibile aggiungere i controlli associati a dati alle classi di entità in un Windows Form trascinando le tabelle o i campi dalla finestra Origini dati nel form.

Per aggiungere controlli associati alle classi di entità

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1, quindi scegliere Visualizza finestra di progettazione.

  2. Nella finestra Origini dati espandere Customer.

  3. Fare clic sulla freccia a discesa accanto a CompanyName, quindi fare clic su Etichetta.

  4. Trascinare CompanyName nel form.

  5. Trascinare Orders dalla finestra Origini dati in Form1. Posizionarlo sotto CompanyName.

  6. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1, quindi scegliere Visualizza codice.

  7. Aggiungere al form il codice riportato di seguito, all'inizio della classe Form, all'esterno di un metodo specifico.

    private NorthwindSampleDataContext northwindSampleDataContext1
        = new NorthwindSampleDataContext();
    
  8. Creare un gestore eventi per l'evento Form_Load e aggiungere il seguente codice al gestore eventi:

    customerBindingSource.DataSource
        = northwindSampleDataContext1.Customers;
    
  9. Premere F5 per eseguire il codice.

  10. Quando viene visualizzato il form, fare clic sul pulsante bindingNavigatorMoveNextItem per scorrere le società e verificare che ordersDataGridView sia aggiornato in modo da visualizzare gli ordini del cliente selezionato.

Salvataggio delle modifiche

Quando si aggiungono i controlli a O/R Designer, il pulsante Salva in bindingNavigator non è attivato. Se si desidera consentire agli utenti di salvare le modifiche, è necessario attivare prima il pulsante Salva, quindi aggiungere il codice per salvare i dati modificati.

Per attivare il pulsante Salva

  1. Fare clic sul pulsante Salva in bindingNavigator, il pulsante con l'icona di un disco floppy.

  2. Nella finestra Proprietà impostare la proprietà Enabled su True.

  3. Fare doppio clic sul pulsante Salva per creare un gestore eventi e passare all'editor del codice.

  4. Aggiungere il seguente codice nel gestore eventi del pulsante Salva:

    northwindSampleDataContext1.SubmitChanges();
    
  5. Premere F5 per eseguire il codice.

  6. Modificare il valore in uno dei campi Shipped Date e premere il tasto TAB per eseguire il commit della modifica.

  7. Fare clic sul pulsante Salva.

  8. Chiudere il form.

  9. Premere F5 e verificare che la modifica apportata sia stata salvata.

Vedere anche

Attività

Procedura: connettersi a un database (C#)

Procedura: visualizzare dati correlati in un form

Procedura: associare dati alle query LINQ

Concetti

Utilizzo di LINQ in C#

Altre risorse

Connessione ai dati (Visual C#)