Utilizzare Visual Studio 2008 per semplificare lo sviluppo con LINQ to SQL

6 pagine in totale: <<Indietro 1 2 [3] 4 5 6 Avanti >>

Stored Procedures

Nell'oggetto "dbml" creato in Visual Studio 2008, abbiamo visto come includere tabelle e viste. Tuttavia, le potenzialità non finiscono qui, poiché nell'Area Metodi dell'editor possiamo inserire anche funzioni e stored procedure. Utilizzando sempre il database Northwind, trasciniamo le SP dal "Server explorer" all'interno dell'area:

Ora possiamo utilizzare le SP come se fossero funzioni all'interno del "DataContext":

Visual Studio 2008 crea le funzioni che fanno da proxy tra la classe e la base dati, richiamando la SP con i corretti parametri. Più avanti, vedremo un problema ed un trucco per risolverne uno relativo alla creazione delle funzioni. Inoltre, è presente un pesante bug riguardante l'oggetto "Xml" in Sql Server 2005 che non viene trattato correttamente.

Inserire dati con LINQ To SQL

Dopo questa veloce panoramica, vediamo come utilizzare in pratica "LINQ To SQL" in una nostra applicazione. Come esempio di database ho creato un database con quattro tabelle in relazione e riassumibile in questo schema:

Visual Studio 2008, come già scritto in precedenza, creerà per noi tutte le classi necessarie per l'utilizzo di LINQ To SQL. Per iniziare, essendo vuote, possiamo popolare le tabelle con poche righe di codice:

// C#
// Creazione istanza classe article
article a = new article();
a.code = "codice " + DateTime.Now.ToString();
// Istanza tipo
article_type at=new article_type();
at.description="type1";
a.article_type = at;
// Istanza classe per autori
articlesauthor aa1=new articlesauthor();
aa1.article=a;
author au1 = new author();
au1.author1 = "AZ"; // esempio 1o autore
aa1.author = au1;
a.articlesauthors.Add(aa1);
articlesauthor aa2 = new articlesauthor();
author au2 = new author();
au2.author1 = "ZA"; // esempio 2o autore
aa2.author = au2;
a.articlesauthors.Add(aa2);
// Salvo il tutto sul database
ExampleDataContext e = new ExampleDataContext();
e.articles.InsertOnSubmit(a);
e.SubmitChanges(); // Salva effettivamente i dati nelle tabelle
Console.WriteLine(a.id); // Visualizza la chiave dell'article inserito

' VB
' Creazione istanza classe article
Dim a As New article
a.code = "codice " + DateTime.Now.ToString
' Istanza tipo
Dim at As New article_type
at.description = "type1"
a.article_type = at
' Istanza classe per autori
Dim aa1 As New articles_author
aa1.article = a
Dim au1 As New author
au1.author = "AZ" ' esempio 1o autore
aa1.author = au1
a.articles_authors.Add(aa1)
Dim aa2 As New articles_author
Dim au2 As New author
au2.author = "ZA" ' esempio 2o autore
aa2.author = au2
a.articles_authors.Add(aa2)
' Salvo il tutto sul database
Dim e As New ExampleDataContext()
e.articles.InsertOnSubmit(a)
e.SubmitChanges() ' Salva effettivamente i dati nelle tabelle
Console.WriteLine(a.id) ' Visualizza la chiave dell'article inserito

6 pagine in totale: <<Indietro 1 2 [3] 4 5 6 Avanti >>

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.


TUTORIALS


IN EVIDENZA
MISC