首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CsvHelper地图学院

CsvHelper地图学院
EN

Stack Overflow用户
提问于 2016-04-21 00:01:42
回答 1查看 4.4K关注 0票数 1

我正在用CsvHelper映射csv文件和学校记录,最终结果应该是学校列表。类似的问题可以在这里找到。

代码语言:javascript
复制
 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

代码语言:javascript
复制
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,如何实现?

EN

回答 1

Stack Overflow用户

发布于 2016-04-22 02:29:21

使用ReferenceMaphttp://joshclose.github.io/CsvHelper/#mapping-reference-map

代码语言:javascript
复制
public sealed class PersonMap : CsvClassMap<Person>
{
    public PersonMap()
    {
        Map( m => m.Id );
        Map( m => m.Name );
        References<AddressMap>( m => m.Address );
    }
}

public sealed class AddressMap : CsvClassMap<Address>
{
    public AddressMap()
    {
        Map( m => m.Street );
        Map( m => m.City );
        Map( m => m.State );
        Map( m => m.Zip );
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36757299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档