120 messaggi dal 24 febbraio 2006
Ciao a tutti,
Ho una lista di oggetti che carico da EF e dopodichè me li mantengo in sessione per usi futuri.
Oggi è arrivato l'"uso futuro" ossia modificare un oggetto di questa lista.
Dopo averne modificate alcune proprietà dell'oggetto avrei pensato di fare una cosa del genere, ma vedo che non fa nulla nel DB

// Modifico delle proprietà
// .....
MioOggetto.valore=100;

// Salvo
using (EFProduzione context = new EFProduzione()) {
context.SaveChanges();
}


Aggiunta postuma:
Ho provato anche con questo
// Salvo
using (EFProduzione context = new EFProduzione()) {
context.ApplyPropertyChanges("MioOggetto", MioOggetto);
}

Ma mi da questo errore:
ObjectStateManager non contiene un elemento ObjectStateEntry contenente un riferimento a un oggetto di tipo 'project.MioOggetto'.

Grazie
Modificato da bovac il 04 novembre 2009 18.02 -
Modificato da bovac il 04 novembre 2009 18.06 -
Modificato da bovac il 04 novembre 2009 18.06 -

Frederick@CityOfCastle
Ciao,

con EF1 la cosa migliore, se puoi, è
1) creare un context
2) agganciare l'oggetto con Attach
3) modifiche le proprietà
4) invocare context.SaveChanges

Se proprio non puoi *prima* effettuare l'attach e poi applicare le modifiche, puoi usare il metodo ApplyPropertyChanges:
1) creare il context
2) fetch della entity da DB
3) ApplyPropertyChanges
4) context.SaveChanges

L'errore che hai ottenuto credo riguardi il qualified name della entity che hai utilizzato. In generale è dato dal namespace del context (quello che scrivi nel designer, per capirci) + . + nome entityset

Ciao,
m.
120 messaggi dal 24 febbraio 2006
Ciao,
Se provo a seguire il primo consiglio mi ritrovo questo errore quando faccio l'attach.
"Più istanze di IEntityChangeTracker non possono fare riferimento a un oggetto entità"
Ho cercato su internet e sembrerebbe causato da una impostazione di EF e non ho trovato il modo di aggirarla.

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/5ee5db93-f8f3-44ef-8615-5002949bea71/

Ho pensato anche di aggirare gestendo un unico oggetto Context per tutta l'applicazione ma ho paura si crei una discreta confusione andando a lavorare su web.

Il secondo metodo mi sembrava l'ultima spiaggia..speravo di evitarlo...

Frederick@CityOfCastle
Ma il context che solleva questa exception l'hai appena creato? O l'hai già utilizzato per recuperare altre entity?

Ciao,
m.
120 messaggi dal 24 febbraio 2006
Si lo ricreo ogni volta..

Frederick@CityOfCastle

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.