【问题标题】:Automapper to Map two List Classes of different structure and also Memberwise explicit MappingAutomapper 映射两个不同结构的列表类以及成员显式映射
【发布时间】:2020-06-02 03:50:37
【问题描述】:

我有 4 个类,即 ClassA、ClassADto、ClassAA(到 ClassA 的内部类)和最终的 Result 类。

ClassAA
{
public int HouseNumber{get;set;}
public string StreetName{get;set;}
public string State{get;set;}
}

ClassA
{
public int Age{get;set;}
public string Name{get;set;}
public ClassAA AObj[get;set;}
}

ClassADto
{

 public int Age{get;set;}
 public string Name{get;set;}

}

class Result
{
public string StreetName{get;set;}
public int TotalCount{get;set;}
public int TodaysDate{get;set;}
public List<ClassADto> AObjectsList{get;set;}
}

现在我的目标是将“Result”类与 ClassA 对象的列表进行映射,以填充属性“AObjectsList”,如下所示: 结果数据=map mapper.map>(obj);

同时在 automapper 中,我想使用自定义函数,使用“Resolve”或“AfterMap”来设置像“TodaysDate这样的属性em>' 到系统的当前日期时间和属性 'TotalCount' 通过计算数据的数量。

我尝试了多种方式使用 'CreateMap' 并且还使用了 'ForMembers' 作为来自 'classAA' 我们只需要 'StreetName' 但它不起作用。需要一些帮助。

【问题讨论】:

    标签: asp.net-web-api c#-4.0 .net-core automapper


    【解决方案1】:

    一次性输入方法 ;)

    public static Result ToResult(this List<ClassA> users)
    {
       return new Result
       {
           TotalCount = users.Count,
           TodaysDate = DateTime.Today,
           AObjectsList = users
               .Select(user => new ClassADto
               {
                   Name = user.Name,
                   Age = user.Age
               })
               .ToList()
       };
    }
    
    // Usage
    var users = new List<ClassA> { new ClassA(), new ClassA() };
    
    var result = users.ToResult();
    

    【讨论】:

    • Fabio 使用 linq 和扩展方法是可以实现的,但我需要使用 Automapper 来实现。有没有可能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    相关资源
    最近更新 更多