/ / ¿Cómo puedo establecer el valor de una columna para cada fila en una tabla usando LINQ? - sql, linq, linq-to-sql

¿Cómo puedo establecer el valor de una columna para cada fila en una tabla usando LINQ? - sql, linq, linq-to-sql

Digamos que tengo una tabla de archivos con la columna "File_ID".

¿Cómo puedo escribir una consulta / declaración LINQ rápida para establecer cada "File_ID" en la tabla de archivos en "1"?

Estoy usando LINQPad en el modo Declaración, pero eso no importa en realidad.

Respuestas

3 para la respuesta № 1

LINQ es para consultar, no para actualizar. Los modelos de LINQ to SQL (y otras fuentes de datos) utilizan un modelo de objeto tradicional de Agregar, Eliminar, captadores y configuradores, y Actualizar () para confirmar el conjunto de cambios en el respaldo de datos.

Lo que está describiendo es simplemente iterar sobre todos los objetos de registro en su colección de tablas, establecer una propiedad y llamar Update(). Sería mucho más rápido y eficiente hacer esto en SQL con una sola UPDATE mando.

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

1 para la respuesta № 2

Un poco de trampa:

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

1 para la respuesta № 3

Esto no es en lo que Linq2SQL es mejor, pero podrías intentar algo como esto:

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