Entity Framework ed il mapping

di Stefano Mostarda, in LINQ,

Ormai utilizzo Entity Framework da quasi un anno, e presso un cliente lo sto facendo adottare perchè questo vuole utilizzare solo tecnlogia proprietaria Microsoft. LINQ To SQL non è abbastanza potente quindi la scelta è ovvia.
Quando mi ritrovo a spiegare Entity Framework l'argomento più complicato non è l'Object Tracking o il supporto per scenari su più layer, logici o fisici che siano, o l'EntitySql; l'argomento più complesso è il Mapping. Senza dubbio il mapping in un ORM è il concetto più semplice da capire, ma con Entity Framework nonostante il facile compito si è riusciti a colpire la classica mosca col bazzuca, ma tant'è e così ce lo teniamo.
All'inizio, ho utilizzato il designer in ctp ma la mia voglia di imparare era tale che dopo pochi giorni sono passato direttamente a fare le cose a manina. Passare da dei tool che ti creano tuto da video a scrivere un xml a mano è pura follia, ma ormai non riesco a farne a meno, il designer proprio non lo so usare :)
Alla lunga però paga perchè scrivere il mapping a mano e verificare gli errori fa capire quali sono le necessità di Entity Framework e fa più o meno intuire come lavora il motore.
Ai Community Days, stavo impazzendo con Roberto perchè lui non riusciva a riprodurre l'ereditarietà Table Per Type e io invece.... nemmeno :). Lui utilizzava il tool e io non sapevo nemmeno cosa stesse facendo quindi mi sono buttato sul file XML. Dopo un vago girare a vuoto, mi sono accorto che nel file SSDL (quello della descrizione dello storage e occhio ho detto storage e non database) non c'era la descrizione dell'associazione tra la tabella primaria e quella secondaria con i campi aggiuntivi. Dimenticando di descrivere quest'associazione, Entity Framework non sapeva come mettere in join le tabelle e generava un'eccezione. Qui si scatena un putiferio; le eccezioni di mapping sono la cosa più oscura del mondo; per la semplice mancanza dell'associazione siamo finiti per avere un messaggio di perdita di dati dovuta alla non conoscenza del lato C della tabella padre. Pensandoci bene, uno particolarmente malato forse potrebbe anche arrivare a capire l'errore ma non sono molto fiducioso.

Insomma, tutto questo per dire una cosa: fatevi i file XML a mano. Probabilmente la prima settimana riuscirete a mappare solo 4 tabelle sulle classi analoghe sputando anche svariato sangue, ma state tranquilli che lo sforzo verrà ampiamente ripagato dopo poco tempo. Personalmente adoro questa piccola applicazione che è una miniera di informazioni per il mapping.

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