Sono curioso di sapere quale sia il modo corretto di aggiornare un elenco di entità contemporaneamente.Qual è il modo corretto di aggiornare molti a molti con EF?
public ActionWas Update(IEnumerable<surcharge_template> templates)
{
try
{
var templatesToBeUpdated = _context.surcharge_template.Where(x => templates.Select(template => template.st_key).Contains(x.st_key));
//Right here I need to map all of the differences from the original templates
//to the new templates
_context.Entry(templatesToBeUpdated).State = EntityState.Modified;
}
catch (Exception ex)
{
return _exceptionConverter.Convert(ex);
}
_context.SaveChanges();
return ActionWas.Successsful;
}
Ho inserito un commento nel punto in cui non sono sicuro del modo in cui gestirlo. Ottengo i modelli originali dal database e quindi ho bisogno di mapparli, quindi eseguire il commit e salvare.
Quindi qual è il modo corretto per mapparli?
UPDATE:
vorrei farlo con EF solo fare una chiamata al database. L'enumerazione dell'elenco causerebbe istruzioni di aggiornamento multipezzo.
Domanda ripetuta. [Link qui] (http://stackoverflow.com/questions/10314552/how-to-update-the-multiple-rows-at-a-time-using-linq-to-sql) – Sarbanjeet
@Sarbanjeet Non ho visto qualsiasi cosa in quel post che parla di come impedire a EF di effettuare più chiamate di aggiornamento al DB quando si chiama saveChanges. – Robert
EntityFramework.Extended aiuterà – Miguel