我试图用自定义属性定义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 测试进行此操作时,我的站点名称始终为空。
这可能是什么问题