Usuario
chinook Leandro

Pregunta
-
Continuando con el estudio de la plicación en capas Chinook de nuestro MVP (ehorabuena) Leandro me surge la siguiente duda. Creamos una entidad factura con los datos de la cabecera y sus líneas y lo mándamos a la capa de datos para que haga el insert en la bbdd. hasta ahí todo perfecto siempre y cuando sea una inserción y la factura no este creada en la bbdd, pero como controlamos un update? ¿Cómo saber que cambios ha realizado el usuario en la entidad factura si ya la tenemos guardada en nuestra bbdd?
Salu2
nunca te acostarás sin saber una cosa más- Cambiado Enrique M. Montejo domingo, 18 de marzo de 2012 9:24 acceso a datos (De:Lenguaje VB.NET)
Todas las respuestas
-
hola
lo mándamos a la capa de datos para que haga el insert en la bbdd
lo estas enviando directo a la capa de datos? no pasas por la de negocio
ojo puede ser que solo implementes dos capas, tampoco esta incorrecto
pero como controlamos un update?
si bien en esos ejemplos de capas no implemente la actualizacion, si lo hice en este otro:
ADO.NET – Parte 3 – Actualizaci ó n Informaci ó n Sql Server
no esta en capas, pero alli podras ver como validar si la entidad existe y realizar un update o insert
Nota: si bien en este ejemplo no se separo fisicamente en capas, si esta la funcionalidad preparada para hacerlo
como veras no se detecta que cambio el usuario se actualizan todos los campos
muy distinto seria si se estuviera usando un ORM, el cual arma las queries de forma dinamica, este si mantiene un dirty por campo y puede armar la consulta actualizando solo lo que cambio
con respecto al detalle de la factura, lo mas simple que se puede aplicar es eliminar las lineas existente, y volver a insertar,
o sea siempre se insertan las lineas, no se actualizan, se que por ahi no sera lo optimo, pero implementar un merge completo es mucho mas complejo
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
La opción de borrar todas las líneas de detalle lo primero e insertar las nuevas acto seguido es como lo tengo implementado, pero no me parecía lo mas correcto, por eso preguntaba si lo hacías de alguna forma en especial. Voy a revisar tu enlace y te cuento. Ahh por cierto estoy usando tres capas + la de entidades igual que en tu ejemplo.
Salu2
nunca te acostarás sin saber una cosa más -