Passaggi tipici per l'utilizzo di LINQ to SQL
Per implementare un'applicazione LINQ to SQL, attenersi ai passaggi descritti in questo argomento. Molti passaggi sono tuttavia facoltativi ed è molto probabile che si possa usare il modello a oggetti nello stato predefinito.
Per iniziare velocemente, utilizzare Object Relational Designer per creare il modello a oggetti e avviare la codifica delle query.
Creazione del modello a oggetti
Il primo passaggio consiste nel creare un modello a oggetti basato sui metadati di un database relazionale esistente. Il modello a oggetti rappresenta il database secondo il linguaggio di programmazione dello sviluppatore. Per altre informazioni, vedere Modello a oggetti LINQ to SQL.
1. Selezionare uno strumento per creare il modello.
Per la creazione del modello sono disponibili tre strumenti.
Object Relational Designer
Questa finestra di progettazione offre un'interfaccia utente avanzata per la creazione di un modello a oggetti da un database esistente. Questo strumento fa parte dell'IDE di Visual Studio ed è più adatto per i database di piccole o medie dimensioni.
Strumento per la generazione del codice SQLMetal
Questa utilità della riga di comando offre un set di opzioni leggermente diverso rispetto a O/R Designer. Questo strumento è più adatto per la modellazione di database di grandi dimensioni. Per altre informazioni, vedere SqlMetal.exe (strumento per la generazione del codice).
Editor di codice
È possibile scrivere codice personalizzato usando l'editor di codice Visual Studio o un altro editor. Si sconsiglia di usare questo approccio, che può essere soggetto a errori, se si dispone già di un database ed è possibile usare O/R Designer o lo strumento SQLMetal. L'editor di codice può tuttavia essere utile per perfezionare o modificare il codice già generato usando altri strumenti. Per ulteriori informazioni, vedere Procedura: Personalizzare classi di entità tramite l'editor di codice .
2. Selezionare il tipo di codice che si desidera generare.
File di codice sorgente C# o Visual Basic per il mapping basato su attributi.
È quindi necessario includere questo file di codice nel progetto di Visual Studio. Per altre informazioni, vedere Mapping basato su attributi.
File XML per il mapping esterno.
Usando questo approccio è possibile evitare di includere i metadati di mapping nel codice dell'applicazione. Per altre informazioni, vedere Mapping esterno.
Nota
O/R Designer non supporta la generazione di file di mapping esterni. Per implementare questa funzionalità è necessario usare lo strumento SQLMetal.
File DBML che potrà essere modificato prima di generare un file di codice finale.
Si tratta di una funzionalità avanzata.
3. Perfezionare il file di codice in modo che rifletta le esigenze dell'applicazione.
A questo scopo, è possibile usare O/R Designer o l'editor di codice.
Uso del modello a oggetti
Nell'immagine seguente viene illustrata la relazione tra lo sviluppatore e i dati in un scenario a due livelli. Per altri scenari, vedere Applicazioni a più livelli e remote con LINQ to SQL.
Dopo avere creato il modello a oggetti, si procederà alla descrizione delle richieste di informazioni e alla modifica dei dati all'interno del modello. Il modello a oggetti deve essere considerato in termini di oggetti e proprietà e non di righe e colonne del database. Infatti, non si gestisce direttamente il database.
Quando si indica a LINQ to SQL di eseguire una query di cui è stata fornita una descrizione o di chiamare l'oggetto SubmitChanges()
sui dati modificati, comunica con il database nel linguaggio del database.
Di seguito sono riportati i passaggi comuni per l'uso del modello a oggetti creato.
1. Creare query per recuperare informazioni dal database.
Per ulteriori informazioni, vedere Concetti relativi alle query ed Esempi di query.
2. Eseguire l'override dei comportamenti predefiniti per le operazioni Insert, Update e Delete.
Questo passaggio è facoltativo. Per ulteriori informazioni, vedere Personalizzazione di operazioni di inserimento, aggiornamento ed eliminazione.
3. Impostare le opzioni appropriate per rilevare e segnalare i conflitti di concorrenza.
Per gestire i conflitti di concorrenza, è possibile mantenere i valori predefiniti del modello oppure modificarli in base agli scopi del progetto. Per altre informazioni, vedere Procedura: Specificare per quali membri viene eseguito il test dei conflitti di concorrenza e Procedura: Specificare quando vengono generate eccezioni di concorrenza.
4. Definire una gerarchia di ereditarietà
Questo passaggio è facoltativo. Per altre informazioni, vedere Supporto sull'ereditarietà.
5. Fornire un'interfaccia utente adatta.
Questo passaggio è facoltativo e dipende dalla modalità di uso dell'applicazione.
6. Eseguire il debug e il test dell'applicazione.
Per altre informazioni, vedere Debug supporto.