Ottimo articolo... sembra che siamo finalmente sulla strada di un ORM POCO.
Persistere i cambiamenti di un grafo disconnesso e' IMHO condizione irrinuciabile per un valido ORM.
Non riesco a capire perche' MS non abbia creato sin dall'inizio un puro POCO Approach come Hibernate. Mi sembra che con EF4 si stia andando in quella direzione, ma non ancora un puro POCO.
In definitiva sono assolutamente d'accordo con te: la migliore soluzione per lavorare con servizi e' DTO: extra lavoro per creare un model per lo scambio dati, ma almeno hai 100% controllo
Modificato da crixo il 28 ottobre 2010 14.39 -
3.154 messaggi dal 06 settembre 2002
Contributi | Blog
grazie per i complimenti.... anche io sono per i DTO tutta la vita. Anche se all'inizio non sembra, alla lunga i DTO tornano sempre utili.
Byez
Stefano
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
1.396 messaggi dal 27 dicembre 2005
Una curiosità tecnica....

Perche se faccio cosi :

var order = new Order() { OrderId = orderId };
ctx.Orders.Attach(order);
order.ShippingDate = shippingDate;
ctx.SaveChanges();


Funziona e se faccio cosi

var order = new Order() { OrderId = orderId };
ctx.Orders.Attach(order);
order.ShippingDate = shippingDate;
ctx.SaveChanges(System.Data.Objects.SaveOptions.None);

No ??
89 messaggi dal 13 marzo 2010
Bell'articolo.
Mi sai indicare qualche libro che mi permetta di approfondire meglio queste tematiche (mentre aspetto l'uscita del tuo libro su EF4) ??? :-)
Ottimo articolo. Chiaro ed efficace per l'apprendimendo della tecnologia.
89 messaggi dal 13 marzo 2010
Ciao,

sto lavorando proprio con le Self-Tracking Entity ed ho un problema proprio quando vado a persistere i dati sul DB.
Lo scenario è questo: ho la solita struttura Ordine --> Righe --> Articolo.
Quando vado a persistere sul DB il grafo STE con questa struttura con i dati modificati dal client, mi viene lanciata una eccezione nel caso in cui DUE RIGHE FACCIANO RIFERIMENTO ALLO STESSO ARTICOLO.
Nella chiamata all'ApplyChanges() EF carica nell'ObjectContext tutte le entity. Se ho due righe che fanno riferimento allo stesso articolo, quando si va a caricare lo stesso articolo la seconda volta, lancia la seguenteeccezione:

"AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges."

Non riesco a capire se mi sto scontrando con una limitazione delle STE oppure se sto sbagliando qualcosa......

EDIT
L'errore al momento della chiamata dell'ApplyChanges() era dovuto all'errore nell'impostare la MergeOption a NoTracking del ObjectContext quando il servizio WCF va a leggere i dati dell'ordine. Settando questa opzione venivano create due istanze di ARTICOLO distinte per lo stesso articolo associato a due righe distinte.
Modificato da federico.orlandini il 06 maggio 2011 11.46 -
89 messaggi dal 13 marzo 2010
Ciao,

sto lavorando proprio con le Self-Tracking Entity ed ho un problema proprio quando vado a persistere i dati sul DB.
Lo scenario è questo: ho la solita struttura Ordine --> Righe --> Articolo.
Quando vado a persistere sul DB il grafo STE con questa struttura con i dati modificati dal client, mi viene lanciata una eccezione nel caso in cui DUE RIGHE FACCIANO RIFERIMENTO ALLO STESSO ARTICOLO.
Nella chiamata all'ApplyChanges() EF carica nell'ObjectContext tutte le entity. Se ho due righe che fanno riferimento allo stesso articolo, quando si va a caricare lo stesso articolo la seconda volta, lancia la seguenteeccezione:

"AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges."

Non riesco a capire se mi sto scontrando con una limitazione delle STE oppure se sto sbagliando qualcosa......

EDIT
L'errore al momento della chiamata dell'ApplyChanges() era dovuto all'errore nell'impostare la MergeOption a NoTracking del ObjectContext quando il servizio WCF va a leggere i dati dell'ordine. Settando questa opzione venivano create due istanze di ARTICOLO distinte per lo stesso articolo associato a due righe distinte.
Modificato da federico.orlandini il 06 maggio 2011 11.47 -
89 messaggi dal 13 marzo 2010
Ops....chiedo scusa per il doppio post :-)

Problema risolto.
Grazie
Modificato da federico.orlandini il 06 maggio 2011 11.47 -

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.