Entity Framework 4.0 e la customizzazione del codice

di Stefano Mostarda, in Entity Framework In Action,

Non è una novità che Entity Framework 4.0 permetta di generare codice tramite il motore di template T4. Quello che forse è meno noto è che si può customizzare anche il modo in cui il designer genera il codice per creare il database quando si usa l'approccio Model First.

Questo processo avviene tramite un worflow che analizza le classi disegnate e dapprima genera le sezioni MSL e SSDL dell'EDM e poi da quest'ultimo fa partire un la generazione dello script tramite T4. Lo script per il workflow si trova nelle cartelle di Visual Studio ed è facilmente individuabile perchè quando si apre il designer, nella finestra delle proprietà c'è il path dello xaml che lancia le activities.

Insomma semplicemente cambiando il file XAML e scrivendoci una nostra attività, possiamo trovare un nostro modo alternativo per creare il database. La prima cosa che mi viene in mente, è che possiamo persistere le classi che sfruttano l'ereditarietà con il modello TPH invece che TPT come avviene adesso. Magari sfruttando le annotation possiamo anche decidere di persistere in uno o nell'altro modo l'ereditarietà. inoltre, customizzando il template che genera il database dal file SSDL, invece che droppare e ricreare ogni volta le tabelle (un autentica mannaia perchè se abbiamo fatto delle ottimizzazioni come indici o altro perdiamo tutto) possiamo fare un compare con la struttura esistente nel db e aggiornare solo le discrepanze. Non dico assolutamente che sia facile, anzi. Quest'ultima cosa richiede parecchio lavoro e se Microsoft stessa ammette che non è una cosa che ha intenzione di fare un motivo ci sarà. Tuttavia se uno ha necessità o tempo da perdere può costruirsi un generatore di codice veramente potente tale da rendere l'utilizzo del designer un vero e proprio gioiello.

Insomma, EF non è ancora perfetto, ma la struttura che c'è sotto è decisamente potente

 

Stay Tuned...

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese