Buongiorno, avrei la necessità di mappare un database parecchio complesso e ovviamente volevo farlo con EF Database First, però ho un problema, il db non ha relazioni e non ha tabelle "Parlanti" ma sia le tabelle che i nomi sono "codificati".

Mi chiedevo se con EF è possibile creare delle mappature e utilizzare Data Annotation Attributes per mappare le colonne e creare degli oggetti più "Leggibili", e se è possibile creare le relazioni e utilizzare Linq.

Utilizzo EF, però di solito il DB me lo gestisco, quindi non ho mai approfondito
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
un ORM come Entity Framework può appunto permetterti di creare un modello concettuale che è sensibilmente diverso dal modello relazionale sottostante.

In pratica: sì, puoi avere nomi di classi e nomi di proprietà differenti dai nomi delle tabelle e colonne che si trovano nel db.

Ecco come mappare usando attributi.
https://www.learnentityframeworkcore.com/configuration/data-annotation-attributes

In alternativa puoi anche usare l'interfaccia fluente.
https://www.learnentityframeworkcore.com/configuration/fluent-api


Usare EF database first

EF Core non supporta l'approccio database first. Vuol dire che non ti permette di aggiornare il modello concettuale in base alle modifiche fatte allo schema del database.
Puoi giusto fare il reverse engineering di un database esistente per creare il modello concettuale la prima volta. Dopodiché EFCore non te lo potrà aggiornare. Lo dovrai casomai sovrascrivere facendoti perdere gli eventuali aggiustamenti che avevi fatto a mano.
https://docs.microsoft.com/it-it/ef/core/managing-schemas/scaffolding

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.