Ok ragazzi, ci siamo!
Lo sapevo che prima o poi sarebbe arrivato questo momento:
Devo usare le view del database (mySQL) con E.F.
Vi spiego le mie perplessità:
Ipotizziamo uno scenario:
- Tabella: Nomi
- id_N
- des_N
- idAnno_N
- idReg_N
- Tabella: Anni
- id_A
- val_A
- Tabella: Regioni
- id_R
- des_R
La struttura è abbastanza semplice:
Nella tabella nomi ho gli id del record corrispondente alla regione di appartenenza e anno di nascita.
Io nel mio bel DB creo una bella view (JOIN) che mi visualizza tutti i dati in base alle relazioni (FK) tra le varie tabelle che mi permetta di ottenere una visualizzazione dei dati insieme (Es: VERONICA, 1980, SARDEGNA)
Ora...se io proietto tutto questo in un modello E.F. ottengo 4 entità che corrispondono alle 3 tabelle sopracitate + la view.
La vera rottura che sto incontrando è il fatto che nel modello E.F. la view non viene vista come tale ma come una entità popolata a se (un po come nei dataset dove era una vera e propria datatable)...questo comporta un dato di fatto non trascurabile:
ogni volta che faccio una INSERT/UPDATE/DELETE su una delle 3 tabelle devo MANUALMENTE ricaricare tutto anche nell'entità della view...
cosa che in uno scenario come quello descritto qui sopra è anche fattibile ma quando cominci ad avere 25/30 tabelle tutte relazionate tra loro in vari modi come nello scenario che sto gestendo io diventa davvero un vaneggio assurdo da gestire...
Cioè se aggiungo un record in "nomi" devo aggiungere il record corrispondente a mano anche nell'entità "view"?!?
La mia domanda è:
Non è possibile aggiornare in automatico le entità "view" come succede nel database dove sono solo proiezioni dei dati delle altre tabelle?
Stavo guardando la funzione "ereditarietà" ma non credo di aver capito molto o che serva al mio scopo (o sbaglio?)
Ho visto che con LINQ si possono creare delle join ma il mio problema è che le datagridview mi servono "disegnate" nel progetto non posso usare il column autobuilding (si chiama così?) tant'è che uso i bindingsource impostati con le entità come datasource..
Cmq quest'ultima info era aggiuntiva mi basta iniziare a capire se c'è la possibilità di avere delle view in entity frameworks che siano tali.Grazie a tutti spero di essere stata comprensibile non è proprio semplice spiegare cosa vorrei! (Come tutte le donne d'altronde)