Automapper不映射参考

时间:2019-05-28 09:16:33

标签: .net-core automapper

我试图用自定义属性定义DTO对象,该属性由引用的属性设置。

我有这些对象:

public class Book
{
   public long Id { get; set; }

   public virtual ICollection<Site> sites{ get; set; } = new List<Site>();
}

和我的DTO

public class BookDTO
{
   public long Id { get; set; }

   public string siteName { get; set; }
}

我有以下映射个人资料

public IdentityCardProfile()
{
  var validAt = DateTime.Now;
  CreateMap<Book, BookDTO>()
    .ForMember(o => o.siteName , o => o.MapFrom(s => GetSiteName(s.sites, validAt)));
}

private string GetSiteName(IEnumerable<Site> sites, DateTime validAt)
{
  //GetValidAt is an extension that returns a single site
  var valid = sites.GetValidAt(validAt, false)

  return validDetail != null ? valid.name: string.Empty;
}

问题:

我写了一个普通的控制器测试,一切正常。 但是,当我通过 integration 测试进行此操作时,我的站点名称始终为空。

这可能是什么问题

0 个答案:

没有答案