繁体   English   中英

使用AutoMapper将字符串数组映射到对象

[英]Use AutoMapper to map a string array to an object

我正在使用TextFieldParser解析CSV文件以使用EntityFramework导入数据库。

TextFieldParser将CSV文件的每一行作为string[] 为了保存对象,我需要从每一行构建一个对象。 有没有办法使用AutoMapper来做到这一点?

我的对象结构是这样的:

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; }
}

我的CSV行格式如下:

名字,中间名,姓氏,地址,******中国

这可以通过以下方式在AutoMapper相当容易地完成:

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文件中值的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM