Отображение / Преобразование для обработки модели Enum с LinqToExcel
У меня проблема с обработкой одного столбца файла Excel, который я пытаюсь импортировать в свою базу данных. Свойство относится к модели Enum. Я попытался поместить целые значения (ссылаясь на индекс Enum) или строковое значение, но, очевидно, это не работает.
Как мне поступить с этим, используя (я предполагаю) метод AddTransformation?
4 ответа
Решение
Решением было создать новый объект и сопоставить свойство вручную. Enum обрабатывался так:
MyEnumProperty = (MyEnumProperty)Convert.ToInt32(c["ColumnNameInExcel"])
Я смог сделать это, сопоставив значение из ячейки со значением перечисления в функции преобразования:
excel.AddTransformation<DataImportJob>(x => x.Status, cellValue =>
{
switch (cellValue)
{
case "Failed":
return JobStatusType.Failed;
case "InProgress":
return JobStatusType.InProgress;
case "Scheduled":
return JobStatusType.Scheduled;
case "Success":
return JobStatusType.Success;
default:
return JobStatusType.Undefined;
}
});
Я попытался метод AddTransformation с Invalid приведение от Double до enum проблема.
excelFile.AddTransformation<Table>(x => x.Company, cellValue => (MyEnumProperty)Convert.ToInt32(cellValue));
Yea, try the AddTransformation
метод и посмотреть, если это работает.