Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can Automapper map a complex source graph to a flat destination without prefixes in the destination properties and without custom mappings?

Is there a way to get Automapper to map a complex source graph like:

public class Source {
    public string Name { get; set; }
    public SourceSub Sub { get; set; }
}

public class SourceSub {
    public string ValA { get; set; }
    public string ValB { get; set; }
}

to a flat destination that looks like:

public class Dest {
    public string Name { get; set; }
    public string ValA { get; set; }
    public string ValB { get; set; }
}

I know something like this will work for a destination:

public class Dest {
    public string Name { get; set; }
    public string SubValA { get; set; }
    public string SubValB { get; set; }
}

However, I am looking for a way to map to the destination without requiring a prefix in the destination properties (for the child class in the source) as long as the names in the child class properties of the source match the destination property names. Is there a way to tell Automapper to project properties in a child class of the source to a flat destination class without mapping each individual member?

like image 679
Matt Spradley Avatar asked Feb 15 '10 05:02

Matt Spradley


1 Answers

No, this isn't a supported scenario right now. We looked at it for a while, but found the naming collision rate too high for our apps, and having the name flattened preserved the full context for where that value came from.

like image 105
Jimmy Bogard Avatar answered Nov 14 '22 23:11

Jimmy Bogard