无法使用Automapper和FileHelper限制

时间:2016-10-28 13:36:49

标签: c# automapper

我正在尝试将我的列表映射到我无法获取的列表。

场景:应将具有固定长度记录的平面文件加载到数据库中。

约束:平面文件的布局在数据库中定义,我使用“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;
            }
        }

0 个答案:

没有答案