我正在尝试将我的列表映射到我无法获取的列表。
场景:应将具有固定长度记录的平面文件加载到数据库中。
约束:平面文件的布局在数据库中定义,我使用“Filehelper”nuget来解析记录。由于布局是在数据库中配置的,因此我使用var fileHelperEngine = new FileHelperEngine(classBuilder.CreateRecordClass());
来动态生成FixedFieldLength。当我使用上述代码创建引擎时,使用代码List<object>
var parseResult = fileHelperEngine.ReadFileAsList(file);
最终,我需要在调用SQLBulkCopy代码之前将List<object>
转换为List<myClass>
。
当我没有使用动态类构建器时,我使用此代码var engine = new FixedFileEngine<T>()
来创建引擎并返回T[]
结果,我可以将其转换为List<T>
,但是它返回o bject[]
或List<object>
,我无法转换。我尝试使用Cast<T>
或OfType<T>
,似乎没有任何效果。
任何人都可以告诉我如何将List<object>
转换为List<myClass>
?我使用 Automapper ,如下所示,但它会返回null
。对象类中的列名与“myClass”不同,我尝试使用“ ForMember ”方法,它抛出了无法找到列的异常,
private List<T> MapParseRecordsFromObjectToT(List<object> parseRecords)
{
try
{
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<object, T>()
// what should I do here??
;
});
var mapper = config.CreateMapper();
var source = new List<object>(parseRecords);
return mapper.Map<List<object>, List<T>>(source);
}
catch (Exception ex)
{
throw;
}
}