5

我正在使用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 行格式如下:

名字、中间名、姓氏、地址、电话号码

4

1 回答 1

15

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

于 2014-09-09T15:13:40.883 回答