簡體   English   中英

對嵌套對象使用自動映射器

[英]Using automapper for nested objects

我正在使用個人資料並在以下方面尋找最佳方法,但我的個人資料中的內容不起作用。

public EbayItemProfile()
        {
            CreateMap<Item, EbayItem>()
                .ForMember(dest => dest.Availability.ShipToLocationAvailability.Quantity, opt => opt.MapFrom(src => src.Quantity))
                .ForMember(dest => dest.Sku, opt => opt.MapFrom(src => src.Sku))
                .ForMember(dest => dest.Product.Title, opt => opt.MapFrom(src => src.Name));
        }

這是我正在嘗試的一些示例 object 設置 map

var items = new List<Item>()
            {
                new Item()
                {
                    Quantity = "2",
                    Sku = "Test-Sku-2",
                    Name = "Test-item-2"
                }
            };

到->

 var expected = new List<EbayItem>()
    {
        new EbayItem()
        {
            Availability = new Availability()
            {
                ShipToLocationAvailability = new ShipToLocationAvailability()
                {
                    Quantity = "2"
                }
            },
            Sku = "Test-Sku-2",
            Product = new Product()
            {
                Title = "Test-item-2"
            }
        }};

任何人都可以在這里提供幫助或建議嗎? .NET 6.0,自動映射器 11.0.0

您可以使用.ForPath()方法。 我已經創建了一個映射配置文件,這應該適用於您的用例。

CreateMap<Item, EbayItem>()
            .ForPath(dest => dest.Availability.ShipToLocationAvailability.Quantity, opt => opt.MapFrom(src => src.Quantity))
            .ForMember(dest => dest.Sku, opt => opt.MapFrom(src => src.Sku))
            .ForPath(dest => dest.Product.Title, opt => opt.MapFrom(src => src.Name));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM