Pregunta:
Regularmente me encuentro con situaciones en las que necesito Agregar o Editar un elemento y, a veces, uso métodos separados para Agregar y Editar, y otras veces los combino en un solo método.
¿Se prefiere un método sobre el otro? Si es así, ¿por qué?
public void AddItem()
{
ShowEditingPopup(new Item(), "Add Item");
}
public void EditItem(Item item)
{
ShowEditingPopup(item, "Edit Item");
}
O
public void EditItem(Item item)
{
ShowEditingPopup(
(item ?? new Item()),
string.format("{0} Item", (item == null ? "Add " : "Edit "))
);
}
donde ShowEditingPopup
se define como
public void ShowEditingPopup(object popupDataContext, string popupTitle)
{
PopupDataContext = popupDataContext;
PopupTitle = popupTitle;
IsPopupVisible = true;
}
Editar: Solo para aclarar, no estoy guardando el elemento, lo estoy abriendo para editarlo. Casi siempre implemento un método de guardado genérico para guardar en la base de datos
Edición n. ° 2: ejemplos de código editado para que reflejen con mayor precisión el tipo de situación a la que me refiero
Respuesta:
Piense en su contexto por un segundo … No hay distinción entre Agregar un nuevo elemento o editar uno existente. Simplemente SaveChanges()
. El estado del elemento individual le dice al contexto si se está agregando un nuevo elemento o se está editando uno existente.
EDITAR: Ok … Bueno, en ese caso, tengo acciones de controlador separadas (MVC3) para cada acción, sin embargo, solo 1 vista …