226 messaggi dal 08 ottobre 2010
Ho un oggetto con una collection di entità, ed una pagina ASP per la modifica dell'oggetto.

Tra le modifiche che si possono fare all'oggetto c'è anche la modifica degli elementi della collection, che si possono aggiungere ed eliminare a piacimento.

Infine c'è il classico tasto salva che salva nel db tutti i dati.

Adesso come adesso ci sono dei bottoni che cancellano ed aggiungono elementi alla collection, e ad ogni click vado ad agire sul db, ma quello che mi piacerebbe fare è una gestione disconnessa della collection, in modo che carico e cancello tutti gli elementi che voglio e poi al salva fare i conti con i dati nel db.

Diciamo che devo ancora provarci, però volevo raccogliere delle idee prima. Molto ottimisticamente una delle mie speranze è che si pssa fare:

Oggetto.CollectionDiOggetti = NuovaCollection

e poi ci pensa EF a riconoscere gli elementi già inseriti e quelli da inserire.
Se però così non fosse mi vedrei costretto a fare questa cosa "a mano", e a sto punto non so più quanto convenga...

(NB: Attualmente uso dei campi hidden per memorizzare gli elementi della collection tra un postback e l'altro, altrimenti non saprei come mantenere le modifiche tra un postback e l'altro)

(NB2: L'idea nasce dall'intenzione di limitare l'accesso al db, se però mi dite che è una scemata non ci provo eh)
20 messaggi dal 02 settembre 2010
www.si2001.it
Ciao,
il concetto di modalità disconnessa su un'applicazione web ha poco senso ma soprattutto ha poco senso tenersi la collection in campi hidden.

Anche ipotizzando di tenerla nel viewstate sarebbe inopportuno perchè andresti comunque ad appesantire il traffico di rete.

Fossi in te salverei puntualmente su DB.

Eviterei sempre i campi hidden. Per mantenere i dati tra un postback e l'altro usa il view state che è fatto apposta.

Purtroppo non è possibile modificare una collection e lasciare che sia EF a gestire l'insert o l'update. Almeno con la versione 3.5 di EF lo devi fare a mano e se non ricordo male la stessa cosa vale per la versione 4. Non è poi così drammatico visto che via EF fai l'add delle tue entity e poi un bel SubmitChanges apporta tutte le modifiche in un colpo al DB.

Spero di averti chiarito le idee

Ciao
Simone

Simone Andrioletti

Senior developer at SI2001 Italy
non sono molto convinto che la modalità disconnessa ha poco senso, comunque qui c'è un articolo che potrebbe interessari

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
226 messaggi dal 08 ottobre 2010
Ok, ho letto il link di Fileman, ammetto che non mi è molto chiaro, l'avevo già visto in precedenza, e l'avevo salvato tra i preferiti per riprenderlo in futuro, purtroppo sono ancora agli inizi e alcuni concetti sfuggono alla mia comprensione, per ora preferirei lasciare da parte concetti come classi POCO e self-tracking entities.


Due dei motivi che mi spingono a gestire questa cosa in modo "disconnesso" sono:
1) Meno viaggi al db
2) se una volta che la collection è modificata viene annullato il salvataggi dei dati come li recupero i dati originali?

x simone.andrioletti:

Perchè avrebbe poco senso? Cioè.. un'applicazione web non è disconnessa "per definizione"? visto che all'unload della tua pagina la connessione al db non viene mantenuta..

Per quanto riguarda il Viewstate:
In effetti è un argomento che avevo considerato, poi però avevo prediletto i campi hidden perchè mi sembravano meno "onerosi", ma ovviamente questa opinione non è supportata da nessuna verifica partica, percui, ben venga qualche commento in più!
All'inizio anche io ho avuto qualche problemino con POCO etc... ma non farne a meno!
Rimanda Self tracking, anche se è ancora più interessante, sto giusto approfondendo l'argomento per un nuovo gestionale.

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-

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.