ophelia
ophelia

Reputation: 13

Mapping 2 classes with same properties

I duplicated a Class1 in a Class2 with the same properties but not all ones. In my context, I have a Class1 obj (o1) initialised with values and I want to change some ones with values of a Class2 obj (o2) without losing the o1 data (values which aren't in o2). Manually, I need to reassignate o1 with values of o2 so I would like to find an automatic way like mapping the classes.

Classes:

public class Class1
{
    public bool Property1;
    public int Property2;
    public string Property3;
    public bool Property4;
    public int Property5;
    public string Property6;
    public bool Property7;
    public int Property8;
    public string Property9;
    public bool Property10;
    public int Property11;
    public string Property12;
    public bool Property13;
    public int Property14;
    public string Property15;
    public bool Property16;
    public int Property17;
    public string Property18;
    public bool Property19;
    public int Property20;
}

public class Class2
{
    public bool Property1;
    public int Property2;
    public string Property3;
    public bool Property7;
    public int Property8;
    public string Property9;
    public bool Property10;
    public int Property11;
    public string Property12;
    public bool Property13;
    public int Property14;
    public string Property15;
    public bool Property16;
    public int Property17;
    public string Property18;
    public bool Property19;
    public int Property20;

    public Class1 ToClass1()
    {
        return new Class1()
        {
            Property1 = Property1,
            Property2 = Property2,
            Property3 = Property3,
            Property7 = Property7,
            ...
            Property20 = Property20
        };
    }
}

If I do ToClass1(), I lose the values of Property4, Property5 and Property6 of the o1.

What I do now:

// o1 and o2 are initialised with values.
o1.Property1 = o2.Property1;
o1.Property2 = o2.Property2;
o1.Property3 = o2.Property3;
o1.Property7 = o2.Property7;
...
o1.Property20 = o2.Property20;

Upvotes: 0

Views: 1542

Answers (1)

Gurpreet
Gurpreet

Reputation: 1442

you need to use automapper and configure your mapping rule to ignore the properties you wont want to map.

Look at this link

Upvotes: 1

Related Questions