/ / Come posso impostare il valore di una colonna per ogni riga di una tabella usando LINQ? - sql, linq, linq-to-sql

Come posso impostare il valore di una colonna per ogni riga in una tabella utilizzando LINQ? - sql, linq, linq-to-sql

Diciamo che ho una tabella File con la colonna "File_ID".

Come posso scrivere una veloce query / istruzione LINQ per impostare ogni "File_ID" nella tabella File su "1"?

Sto usando LINQPad in modalità Statement, ma non importa.

risposte:

3 per risposta № 1

LINQ è per interrogare, non aggiornare. I modelli LINQ to SQL (e altre origini dati) utilizzano un modello a oggetti tradizionale di Aggiungi, Rimuovi, getter e setter e Update () per eseguire il commit del changeset sul supporto dati.

Quello che stai descrivendo è semplicemente iterare su tutti gli oggetti record nella tua raccolta di tabelle, impostare una proprietà e chiamare Update(). Sarebbe molto più veloce ed efficiente farlo in SQL con un singolo UPDATE comando.

myDataContext.ExecuteQuery("UPDATE [File] SET File_ID = {0}", 1);

1 per risposta № 2

Un po 'barare:

dataContext.ExecuteQuery("update File set File_ID = 1");

1 per risposta № 3

Questo non è ciò che Linq2SQL è migliore, ma potresti provare qualcosa del genere:

using(var ctx = new MyDataContext())
{
foreach(var f in ctx.Files)
{
f.File_ID = 1;
}
ctx.SubmitChanges();
}