C# 问:如何将DataTable映射到DTO而不使用自动映射器?

C# 问:如何将DataTable映射到DTO而不使用自动映射器?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个返回数据表的方法: public RetirementDiskSettingDto GetRetirementDiskSettingDetails(Guid retirementDiskSettingGuid) { RetirementDiskSettingDto settingDto = new RetirementDiskSettingDto(); var details = Provider.GetDataTable(

我有一个返回数据表的方法:

public RetirementDiskSettingDto GetRetirementDiskSettingDetails(Guid retirementDiskSettingGuid)
        {
            RetirementDiskSettingDto settingDto = new RetirementDiskSettingDto();
            var details = Provider.GetDataTable(string.Format("SELECT * FROM {0}RetirementDiskSettingDetails WHERE RetirementDiskSettingGuid = @RetirementDiskSettingGuid ORDER BY [Index]", Provider.DBPrefix), "@RetirementDiskSettingGuid", retirementDiskSettingGuid);
            details.Columns.Add("ColumnTitle");

            DataTable dynamicReportHybridColumns = new BizClasses.DynamicReportHybridColumn().GetHybridColumns();

            DiskSettingColumnType diskSettingColumnType;
            foreach (DataRow row in details.Rows)
            {
                Enum.TryParse(Helper.GetString(row["ColumnType"]), out diskSettingColumnType);

                switch (diskSettingColumnType)
                {
                    case DiskSettingColumnType.HybridColumn:
                        row["ColumnTitle"] = dynamicReportHybridColumns.Select(String.Format("[Guid] = '{0}'", Helper.GetString(row["ColumnName"])))[0]["DisplayTitle"];
                        break;

                    default:
                        row["ColumnTitle"] = Language.GetString(Helper.GetString(row["ColumnName"]), SoftwareManager.Guid);
                        break;
                }
            }
            return settingDto;
        }
另一方面,我有一个DTO:

   public class RetirementDiskSettingDto
     {
        public List<string> SettingTitles { get; set; }  
     }
公共类失效DiskSettingDTO
{
公共列表设置标题{get;set;}
}
如何将DataTable的特殊列(
行[“ColumnName”]
)映射到DTo?
无需使用自动映射器。

您可以手动操作,或使用其他库代替自动映射器。你试过什么?@ADyson我试过用手做,但没有成功!您能给我一个正确操作的提示吗?首先,请展示您尝试过的内容,然后我们可以知道您正在努力手动操作的确切位置,我们可以说,让我们定义一个RetirementDiskSettingDto实例,然后
instance.SettingTitles=new List()
。最后,
inputColumn.ForEach(x=>{instance.SettingTitles.add(x.ToString())})
。您可以手动完成,也可以使用其他库代替automapper。你试过什么?@ADyson我试过用手做,但没有成功!您能给我一个正确操作的提示吗?首先,请展示您尝试过的内容,然后我们可以知道您正在努力手动操作的确切位置,我们可以说,让我们定义一个RetirementDiskSettingDto实例,然后
instance.SettingTitles=new List()
。最后,
inputColumn.ForEach(x=>{instance.SettingTitles.add(x.ToString())})