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

标签 c# csv automapper textfieldparser

我正在使用 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/

相关文章:

automapper - 为什么我在使用 Condition 时会收到 "Nullable object must have a value"异常?

c# - 追踪黑客/恶意软件企图

c# - Visual Studio 2010 Professional 播放按钮已禁用

c# - 取消选择 TreeView 节点

javascript - 如何警告 Angular ui 网格导入文件失败?

c# - 如何使用 AutoMapper 为特定映射映射空值?

c# - 如何获取 Zendesk 中的所有用户

c# - csv 文件导入 Azure 存储时出现数据格式问题

python - 按列写入 csv

c# - Automapper Entity Framework 外键为空