我在.NET CORE 5專案中使用AutoMapper 10.1.1版本。我有一個需要映射的嵌套物件,但無法做到這一點,并得到以下例外,盡管我可以得到第一個子物件的資料映射,在我的例子中是 "Enforcements",但無法訪問子物件 "Contraventions "的子物件
。在0級的類
public class SiteContraventionDataView
{
public int SiteId { get; set; }
public string SiteName { get; set; }
public ICollection<EnforcementDataView> Enforcements { get; set; }
第1級子類
public class EnforcementDataView
{
public int EnforcementId { get; set; }
public ICollection<ContraventionDataView> Contraventions { get; set; }
當我試圖從上面的子類中為'Contraventions'設定源時,我得到了錯誤。我正在嘗試用lambda運算式來獲取Contravention物件的參考
。 .ForMember(dataView => dataView.Enforcements.Select(x=>x.Contraventions), opt => opt.MapFrom( dataModel => GetContraventions( dataModel.Enforcements.ToList()))))
AutoMapping類
public class SiteContraventionsProfile : Profile
{
public SiteContraventionsProfile()
{
CreateMap<Site, SiteContraventionDataView>()
.ForMember(dataView => dataView.SiteId, opt => opt.MapFrom(dataModel => dataModel.SiteId)
.ForMember(dataView => dataView.SiteName, opt => opt.MapFrom(dataModel => dataModel.SiteName)
.ForMember(dataView => dataView.Enforcements, opt => opt.MapFrom(dataModel => dataModel.Enforcements)
.ForMember(dataView => dataView.Enforcements.Select(x=>x.Contraventions), opt => opt.MapFrom(dataModel => GetContraventions(dataModel.Enforcements.ToList())))
;
}
private List<Contravention> GetContraventions(List< Enforcement> enforcements)
{
List<Contravention> contraventions = new List<Contravention>()。
if (enforcements.Any())
{
var t1 = enforcements.Select(x => x.EnforcementContraventions) 。
}
return contraventions;
}
uj5u.com熱心網友回復:
嘗試為Enforcement和Contravention添加映射:
CreateMap<Enforcement, EnforcementDataView>()。
CreateMap<Contravention, ContraventionDataView>()。
CreateMap<Site, SiteContraventionDataView>()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310079.html
標籤:

