【发布时间】:2019-06-26 23:45:39
【问题描述】:
想象一下这样的 EF dbSet 集合:
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; }
}
这个模型用于我的 SGBB,我想用它从 CSV 文件中导入数据。但是这个文件有一点点不同。它只给一个这样的徽章:
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)
}
};
}
}
我对第二个值有疑问,使用第二个转换器重置徽章列表:
Map(m => m.Badges).Name("Type").TypeConverter<AnotherOneBadgeConverter>();
直接设置第一项不行:
Map(m => m.Badges[0].Type).Name("Type");
怎么做?
【问题讨论】:
标签: c# entity-framework csvhelper