Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

379
Visualizações
Ignorar el mapeo de una propiedad con Automapper

Estoy usando Automapper y tengo el siguiente escenario: Class OrderModel tiene una propiedad llamada 'ProductName' que no está en la base de datos. Entonces, cuando trato de hacer el mapeo con:

 Mapper.CreateMap<OrderModel, Orders>();

Genera una excepción:

"Las siguientes 1 propiedades en Project.ViewModels.OrderModel no están asignadas: 'ProductName'

He leído en AutoMapper's Wiki for Projections el caso contrario (el atributo adicional está en el destino, no en la fuente, que en realidad es mi caso)

¿Cómo puedo evitar que automapper haga el mapeo de esta propiedad?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

De Jimmy Bogard: CreateMap<Foo, Bar>().ForMember(x => x.Blarg, opt => opt.Ignore());

Está en uno de los comentarios de su blog .

ACTUALIZAR ( del comentario de Jamie del 4 de enero de 2019 a las 11:11 :)

Ignorar se reemplazó con DoNotValidate en ForSourceMember: https://github.com/AutoMapper/AutoMapper/blob/master/docs/8.0-Upgrade-Guide.md

over 4 years ago · Santiago Trujillo Relatório

0

Soy quizás un poco perfeccionista; Realmente no me gusta la ForMember(..., x => x.Ignore()) . Es una pequeña cosa, pero me importa. Escribí este método de extensión para hacerlo un poco más agradable:

 public static IMappingExpression<TSource, TDestination> Ignore<TSource, TDestination>( this IMappingExpression<TSource, TDestination> map, Expression<Func<TDestination, object>> selector) { map.ForMember(selector, config => config.Ignore()); return map; }

Se puede usar así:

 Mapper.CreateMap<JsonRecord, DatabaseRecord>() .Ignore(record => record.Field) .Ignore(record => record.AnotherField) .Ignore(record => record.Etc);

También podría reescribirlo para que funcione con params , pero no me gusta el aspecto de un método con un montón de lambdas.

over 4 years ago · Santiago Trujillo Relatório

0

Puedes hacerlo:

 conf.CreateMap<SourceType, DestinationType>() .ForSourceMember(x => x.SourceProperty, y => y.Ignore());

O, en la última versión de Automapper, simplemente quiere decirle a Automapper que no valide el campo

 conf.CreateMap<SourceType, DestinationType>() .ForSourceMember(x => x.SourceProperty, y => y.DoNotValidate());
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda