Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Approccio "Model First" in ADO.NET Entity Framework 2.0 e VS 2010

Una delle nuove caratteristiche di ADO.NET Entity Framework 2.0, che possiamo già saggiare nella Beta 1 di Visual Studio 2010, si chiama Model First e consente di generare un vero e proprio database di SQL Server a partire dal modello a oggetti. In questo modo è possibile partire dal modello tipizzato arrivando a uno script SQL. In primo luogo si aggiunge al progetto un Entity Data Model:

Ci verrà poi chiesto di specificare l'origine per l'EDM. In questo caso dobbiamo selezionare un modello vuoto:

 

Dopo qualche secondo, il designer di EF si presenta in modo simile alla figura seguente, da cui si evince che possiamo iniziare a modellare l'EDM sfruttando alcuni speciali elementi nella toolbox, che ci permettono di definire le entità, le associazioni e i livelli di ereditarietà:

Supponiamo di voler creare una banale relazione one-to-many tra un impiegato e gli ordini di cui lo stesso si è occupato. Trasciniamo l'oggetto Entity dalla toolbox sul designer. Possiamo rinominare il titolo di default con l'identificatore di nostro interesse, come Employee, facendo clic sull'identificatore di default. Visual Studio ha altresì aggiunto una scalar property di partenza, che rappresenta la chiave primaria (Id, in questo caso) e che possiamo lasciare invariata. Dopodichè, possiamo fare clic destro sulla parte superiore dell'entity per aggiungere ulteriori scalar properties (che, ricordiamo, rappresentano in forma .NET le colonne del db) e selezionando il comando Add scalar property, come in figura:

Nell'esempio ho aggiunto alcune proprietà banali, come il nome, il cognome, il ruolo e la data di nascita. Per default Visual Studio assegna il tipo String, ma è possibile utilizzare la finestra delle proprietà per cambiare il tipo, come nel caso della scalar property BirthDate che è modificato in DateTime. Inoltre, è anche possibile indicare che il tipo stesso sia Nullable.

Sempre con un clic destro sul designer, è possibile aggiungere un entità (Add entity). Vogliamo aggiungere un oggetto che rappresenti un singolo ordine, quindi chiameremo l'entità Order e l'entityset come Orders (invece che OrderSet proposto di default):

Visual Studio stabilisce anche by default una proprietà Id che rappresenta la chiave primaria. Vogliamo poi aggiungere una relazione tra le due entità. Si fa aggiungendo una Association:

A questo punto comparirà una finestra in cui ci verrà chiesta conferma della relazione uno (employee) a molti (order). Dopo aver accettato quanto proposto di default, il designer si presenta come nella seguente figura, all'interno della quale noterete anche il comando da intraprendere successivamente, ossia quello per la generazione dello script SQL:

Ci verrà poi chiesto di specificare una connessione. In questa fase possiamo specificare un nuovo database, come nel mio esempio in cui viene generato un database chiamato ModelFirstDemo.Mdf:

A questo punto ci verrà mostrata una preview dello script che sta per essere generato e che potete sfogliare:

Dopo alcuni secondi lo script SQL viene reso disponibile nell'editor di Visual Studio e dove è possibile mandarlo in esecuzione:

 

Lo scopo di questo tipo di approccio è quello di favorire la modellazione dei dati secondo un'ottica tipicamente .NET, piuttosto che partire da un'ottica classica di tipo SQL. In questo modo sarà il database ad adattarsi alle funzionalità richieste e progettate in modo del tutto .NET oriented.

E' chiaro che la progettazione di un EDM complesso non è una banalità e richiede sicuramente esperienza nella progettazione dei modelli e che questo post ha prevalentemente lo scopo di farvi conoscere questa nuova funzionalità.

Alessandro

Print | posted on domenica 2 agosto 2009 02:07 | Filed Under [ .NET Framework Visual Basic LINQ Visual Studio 2010 ]

Powered by:
Powered By Subtext Powered By ASP.NET