Sto cercando di aggiornare una parte specifica di codice seguente:Qual è il modo corretto di aggiornare ContentItem in Orchard?
var nationalPart = _contentManager.Get<NationalPart>(Id);
nationalPart.Name = part.Name;
ho già fatto this.but ora non è working.even io chiamo contentManager.Flush()
esplicitamente, ma ancora senza fortuna. Qualcuno mi può aiutare con questo? grazie in anticipo.
EDIT: ho trovato da dove proviene il mio problema! quando faccio una richiesta JSON per aggiornare un contentPart.la versione in memoria è in fase di aggiornamento ma non sta riflettendo il risultato su db.now siamo un passo avanti per rispondere.ma cosa impedisce alla sessione di aggiornare il db?
EDIT2:
questo è il codice per il mio gestore:
public NationalPartHandler(IRepository<NationalPartRecord> repository)
{
Filters.Add(StorageFilter.For(repository));
}
questo è il codice per l'azione di controllo:
[GridAction(EnableCustomBinding = true)]
public JsonResult UpdateNational(NationalViewModel Model, GridCommand Command)
{
if (!ModelState.IsValid)
return new JsonResult { Data = "error" };
var NationalPart = _contentmanager.Get(Model.Id).As<NationalPart>();
NationalPart.Record = new NationalPartRecord();
NationalPart.Record.MapFrom<NationalPartRecord, NationalViewModel>(Model);
_soccerService.UpdateNational(NationalPart);
return NationalsListJson(Command);
}
e, infine, il codice per il servizio:
public void UpdateNational(NationalPart part)
{
var nationalPart = _contentManager.Get<NationalPart>(part.Id);
nationalPart.Name = part.Name;
_contentManager.Flush();
}
Ti sei ricordato che il setter della proprietà della parte imposta il valore della proprietà nella classe record? L'ho dimenticato prima. –
Se non funziona, probabilmente si ha un'eccezione da qualche parte durante il rollback della transazione. Controlla app_data \ logs. –
@BertrandLeRoy Ho ricontrollato la directory logs.but è vuoto (non c'è errore). –