Digamos que consulto la base de datos y cargo una lista de artículos. A continuación, abro uno de los elementos en una vista detallada, y en lugar de volver a consultar el elemento fuera de la base de datos, creo una instancia del elemento del origen de datos en la lista.¿Desea actualizar un registro sin consultar primero?
¿Hay alguna forma de actualizar el registro de la base de datos sin obtener el registro del elemento individual?
Este es un ejemplo de cómo lo estoy haciendo ahora:
dataItem itemToUpdate = (from t in dataEntity.items
where t.id == id
select t).FirstOrDefault();
A continuación, después de tirar el disco que actualizar algunos valores en el artículo y pulsar el récord de vuelta:
itemToUpdate.itemstatus = newStatus;
dataEntity.SaveChanges();
Me gustaría pensar habría una mejor manera de hacer esto, ¿alguna idea?
No es una manera terriblemente mala de hacer las cosas. ¿Tiene acceso concurrente a esa mesa? –
Creo que este es el uso que un ORM como EF está ahí para servir. ¿Permitir que las operaciones dentro del contexto de la aplicación se realicen en los objetos que desea crear/modificar/eliminar, sin preocuparse por la implementación subyacente de DB? –
Creo que para los desarrolladores con experiencia en TSQL tratando de aceptar y aceptar ORM's, es un poco ineficiente buscar un registro solo para actualizarlo, y nunca utilizar los datos obtenidos. Este concepto de que un desarrollador no necesita preocuparse por la implementación subyacente de DB es una bazofia. Cuanto más sepa un desarrollador sobre todo el sistema, mejor podrá ser la solución. Las opciones nunca son malas. – barrypicker