2012-02-15 13 views
5

Tengo una tabla con varias columnas y deseo actualizar solo una columna. Estoy escribiendo un método que primero recupera el registro y luego lo actualiza cambiando el valor de la columna. De esta manera:Actualización de una sola columna en LINQ to SQL

using (myDC...) 
{ 
    var recordInDB = (from... 
        where .... 
        select r).SingleOrDefault(); 

    if (recordInDB != null) 
    { 
    recordInDB.MyColumn = newValue; 

    myDC.SubmitChanges(); 
    } 

¿Esto va a mantener todas las otras columnas a medida que eran y sólo actualizar la que yo quiero cambiar o ¿Esto va a limpiar todas las columnas y actualizar el MiColumna columna con el nuevo valor?

Respuesta

6

Esto no cambiará las otras columnas en su tabla. Solo el que estás actualizando.

4

Esto mantendrá las columnas que no tocó tal como están en la base de datos en el momento de la lectura.

En SubmitChanges, la llamada LINQ2SQL compara los valores en los campos del objeto con los valores en la base de datos y actualiza solo los que han cambiado.