【发布时间】:2016-08-13 22:17:13
【问题描述】:
我正在使用 CsvHelper 将 csv 文件与学校记录进行映射 最终结果应该是学校列表。 Similar issue can be found here
public class School
{
public IList<Student> Students{ get; set; }
}
public class Student
{
public StudentRef Reference{ get; set; }
}
public class StudentRef
{
public string RefNumber{ get; set; }
}
CSV 文件中的一列是 SRef,应该链接到 StudentRef.RefNumber
public sealed class StudentRefMap : CsvClassMap<StudentRef>
{
public StudentRefMap ()
{
Map(m => m.RefNumber).Name("SRef");
}
}
public sealed class StudentMap : CsvClassMap<Student>
{
public StudentMap ()
{
References<StudentRefMap >(m => m.Reference);
}
}
public sealed class SchoolMap : CsvClassMap<School>
{
public SchoolMap ()
{
//References<StudentMap>(m => m.Students);//doesn't work
Map(m => m.Students)
.ConvertUsing(row => new List<Student>
{row.GetRecord<Student>()}); // doesn't work
}
}
我想用 Schools 列表映射 csv 文件,但是其中一列是指 StudentRef 所以使用 CSVHelper,我该如何实现?
【问题讨论】:
-
这是一个不清楚的帖子。你有没有想过 linq to csv ?
-
好的,抱歉我的问题不清楚,我确实修改了一点,希望现在更清楚。我也必须使用 CsvHelper ,谢谢
-
我认为由于嵌套对象,您必须手动读取记录:joshclose.github.io/CsvHelper/#reading-reading-records-manually