Automapper复杂对象映射NullReferenceexception

时间:2014-05-06 14:46:31

标签: c# .net automapper automapper-3

我有以下课程

public class Group 
{
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection<GroupTier> Tiers { get; set; }
}

public class GroupTier : IEntity
{
    public int Id { get; set; }
    public int GroupId { get; set; }
    public int Tier { get; set; }
    public decimal Amount { get; set; }

    public virtual Group Group { get; set; }
}  

我正在尝试映射到以下ViewModel

public class GroupViewModel 
{
    public int Id { get; set; }
    public string Name { get; set; }
    public IEnumerable<decimal> Tiers { get; set; }
}  

使用配置

configuration.CreateMap<Group, GroupViewModel>()
   .ForMember(m => m.Tiers, opt => opt.MapFrom(u => u.Tiers.OrderBy(q => q.Tier).Select(q => q.Amount)));

我正在使用EF6从数据库中查询。 Group.Tiers为空时我遇到了麻烦。我该如何处理空值?

当我使用此配置时

configuration.CreateMap<Group, GroupViewModel>()
    .ForMember(m => m.Tiers, opt => opt.MapFrom(u => u.Tiers == null ? new List<decimal>() : u.Tiers.OrderBy(q => q.Tier).Select(q => q.Amount)));

我收到此错误

  

无法比较'System.Collections.Generic.ICollection'

类型的元素

0 个答案:

没有答案