12

Jan

AD – Demo 5 - EntityFramework

A ridosso del seminario anche quest’ultima demo, semplice da realizzare ma i cui concetti connessi non sono certo trattabili in meno di qualche giorno di studio individuale approfondito.

Parliamo di ORM, cioè di una layer che mi permette di mappare 1-to-1 una tabella ad un oggetto; utilizzando poi gli oggetti, strong typed, per manipolare i dati.

L’ORM in considerazione è l’entityframework di Microsoft. Oggi, a più di un anno dal rilascio, il mercato ha diversi provider dati compatibili con questo nuovo ORM, così possiamo usare in tutta tranquillità anche MySQL senza differenze di sviluppo.

Il Mapping

Il tutto parte dal mapping che VS studio genera dinamicamente (è anche possibile farselo a mano) tra il DB e le varie classi .NET. Intanto creiamo un progetto 3.5 e assicuriamoci di avere l’SP1 di VS installato, altrimenti non andrà nulla. Poi su New, scegliamo:

image

A questo punto, come se fosse un dataset, seguiamo il wizard specificando su che tabella fare il mapping. Poi apriamo il model appena creato ottenendo questo:

image

NOTA: possiamo customizzare il mapping in ogni suo dettagli nella finestra sotto:

image

A questo punto abbiamo un oggetto nella forma nomedatabaseEntities che dovremo istanziare e in cui si troveranno un oggetto per ogni tabella mappata. Ogni tabella sarà navigabile con linq e interrogabile a piacere.

Interrogazione

Ora basterà creare la query linq che più ci aggrada quindi, supponendo si volere i nomi dei post pubblicati dopo il 10 gennaio 2009, dovremo scrivere qualcosa del tipo:

image

Per poi navigare su res come vogliamo, visto che sarà una IEnumerable. Se invece volessimo scriverla in forma più elegante:

image

Infine, giusto per ripassare un pò di LINQ, se volessimo SOLO Nome e Data dei post nel cui body c’è la scritta “Microsoft” e di questi ci interessano solo i primi 5, ordinati per Nome, faremmo:

image

e a questo punto la variabile res diventerebbe di un tipo anonimo composto da due campi (Nome e Data) e siamo sicuri che in res ci saranno al più 5 elementi.

by Simona Cossidente on 1/12/2010