Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CsvHelper:初始化映射成员_C#_Entity Framework_Csvhelper - Fatal编程技术网

C# CsvHelper:初始化映射成员

C# CsvHelper:初始化映射成员,c#,entity-framework,csvhelper,C#,Entity Framework,Csvhelper,想象一组EF数据库集,如下所示: public class Employee { ... public string FirstName { get; set; } public List<Badge> Badge { get; set; } } public class Badge { public long CSN { get; set; } public int EmployeeId { get; set; } public int Type { g

想象一组EF数据库集,如下所示:

public class Employee {
  ...
  public string FirstName { get; set; }
  public List<Badge> Badge { get; set; } 
}

public class Badge {
  public long CSN { get; set; }
  public int EmployeeId { get; set; }
  public int Type { get; set; }
}
FIRSTNAME;CSN;TYPE
Jerome;12345;1
我使用了CollectionGenericConverter,用新记录初始化列表

Map(m => m.Firstname).Name("Firstname");
Map(m => m.Badges).Name("CSN").TypeConverter<BadgeConverter>();

...

public class BadgeConverter : CollectionGenericConverter {
   public override object ConvertFromString(String text, IReaderRow row, MemberMapData memberMapData) {
       return new List<Badge> {
           new Badge {
               CSN = Convert.ToInt16(text)
           }
       };
   }
}

如何做到这一点?

像这样的东西可能适合你

公共类程序
{
公共静态void Main(字符串[]args)
{
使用(MemoryStream stream=new MemoryStream())
使用(StreamWriter=新StreamWriter(流))
使用(StreamReader=新StreamReader(stream))
使用(CsvReader csv=新CsvReader(读卡器))
{
writer.WriteLine(“FIRSTNAME;CSN;TYPE”);
作者:WriteLine(“Jerome;12345;1”);
writer.Flush();
流位置=0;
csv.Configuration.Delimiter=“;”;
csv.Configuration.RegisterClassMap();
var records=csv.GetRecords().ToList();
}
}
}
公营雇员
{  
公共字符串名{get;set;}
公共列表标记{get;set;}
}
公众阶级徽章
{
公共长CSN{get;set;}
public int EmployeeId{get;set;}
公共int类型{get;set;}
}
公共类EmployeeMap:ClassMap
{
公共雇员地图()
{
Map(m=>m.FirstName).Name(“FirstName”);
映射(m=>m.Badge).ConvertUsing(行=>
{
变量列表=新列表
{
新徽章{CSN=row.GetField(“CSN”),Type=row.GetField(“Type”)},
};
退货清单;
});
}
}

完美!谢谢大卫
 Map(m => m.Badges).Name("Type").TypeConverter<AnotherOneBadgeConverter>();
 Map(m => m.Badges[0].Type).Name("Type");