Use AutoMapper to map a string array to an object

I use TextFieldParserto parse a CSV file to import into a database using EntityFramework.

TextFieldParserreturns each line of the CSV file as string[]. To save objects, I need to build an object from each row. Is there any way to do this using AutoMapper?

My object structure is as follows:

public class Person
{
    public string FirstName { get; set; }
    public string MiddleName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
    public string PhoneNumber { get; set; }
}

And my CSV lines have the following format:

FirstName, MiddleName, LastName, Address, PhoneNumber

+4
source share
1 answer

This can be done quite easily in AutoMapperby doing something like this:

Mapper.CreateMap<string[], Person>()
    .ForMember(p => p.FirstName, opts => opts.MapFrom(s => s[0]))
    .ForMember(p => p.MiddleName, opts => opts.MapFrom(s => s[1]))
    .ForMember(p => p.LastName, opts => opts.MapFrom(s => s[2]))
    .ForMember(p => p.Address, opts => opts.MapFrom(s => s[3]))
    .ForMember(p => p.PhoneNumber, opts => opts.MapFrom(s => s[4]));

, CSV.

+11

All Articles