我正在使用 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 行格式如下:
FirstName,MiddleName,LastName,Address,PhoneNumber
最佳答案
这可以在 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 文件中值的顺序。
关于c# - 使用 AutoMapper 将字符串数组映射到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25748163/