Domanda

Domanda semplice, è possibile ottenere questa query con Entity Framework durante l'aggiornamento di un'entità?

update test set value = value + 1 where id = 10
È stato utile?

Soluzione

Non proprio sotto questo modulo n.

Dovrai selezionare tutte le entità che corrispondono ai tuoi criteri, raggiungerle e aggiornarle.

Se stai cercando qualcosa che lo farà nel DB perché il tuo set potrebbe essere enorme, dovrai usare SQL direttamente. (Non ricordo se EF ha un modo per eseguire le query UPDATE direttamente come fa Linq To SQL).

Altri suggerimenti

Utilizza la funzione Aggiornamento batch della Libreria estesa Entity Framework , in questo modo:

dbContext.Tests.Update(t => t.Id == 10, t => new Test() { Value = t.Value + 1 });

Dovrebbe essere, sarà solo un po 'più limitato in generale.

var myEntity = context.First(item => item.id == 10);
myEntity.value += 1;
context.SaveChanges();

Dovrebbe produrre un SQL simile, puoi guardare il profiler per vedere quale SQL viene effettivamente generato, ma dovrebbe essere molto simile alla tua affermazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top