2010-12-21 8 views
5

Antecedentes: Estoy trabajando en un servicio web que quiero permitir que la entrada que tiene un campo nulo signifique "no hacer una actualización". El objeto de entrada es muy similar, pero no idéntico al modelo de la base de datos, por lo que estamos usando automapper para hacer las transformaciones.Puede ignorar automáticamente el destino si no es nulo/solo cambia los campos nulos

Entonces, en el caso de una actualización, me gustaría poder tomar los valores existentes, usarlos para anular cualquiera de los campos nulos en la entrada, y guardarlos para hacer toda la actualización. Entonces, ¿hay alguna manera de hacer que Automapper solo ponga valores en el destino si el campo de destino es nulo?

+0

Parece que puede hacer esto ahora. Si todavía está interesado, eche un vistazo a [esta respuesta] (http://stackoverflow.com/a/16073984/1505426) - Creo que es similar a su pregunta. – Mightymuke

Respuesta

2

Sí, puede, pero probablemente no quiera pasar por la molestia. Para hacer esto, necesitará tener un controlador de mapa personalizado para cada campo en el objeto que desea hacer esto (Puede compartir el controlador personalizado entre las propiedades del mismo tipo, pero yo no soy 100% seguro sin mirar algunos de mis viejos códigos).

+0

Sin embargo, parece que es posible hacer lo contrario (ignorar el nulo en la fuente). Sin embargo, no estoy seguro de cómo configurar la condición de ignorar y aun así usar mapas personalizados para las partes que lo necesitan. – Seneca

+0

OK, pero ¿cómo se puede hacer eso para * un campo *? – Faust

+0

@Faust: muchos recursos para crear una lógica de mapeo personalizada, como http://cpratt.co/using-automapper-creating-mappings/ –

Cuestiones relacionadas