簡體   English   中英

將類與另一個類屬性映射時,自動映射器出錯

[英]Auto mapper makes error when mapping class with another class properties

我有以下兩個類結構,其CASADetialsResponse如下,

public class CASADetialsResponse
{
    public string status { get; set; }
    public string message { get; set; }
    public List<object> validation { get; set; }
    public Data data { get; set; }
}

public class LinkedCard
{
    public string cardNumber { get; set; }
}

public class JointParty
{
    public string jointName { get; set; }
}

public class Account
{
    public string accountNumber { get; set; }
    public string accountNickName { get; set; }
    public List<LinkedCard> linkedCards { get; set; }
    public List<JointParty> jointParty { get; set; }
    public List<object> productValidation { get; set; }
}

public class Transaction
{
    public string accountNumber { get; set; }
    public string valueDate { get; set; }
    public string transactionDetails { get; set; }
    public string postDate { get; set; }

}

public class Data
{
    public Account account { get; set; }
    public List<Transaction> transactions { get; set; }
}

CASADetails類結構如下,

public class CASADetails
{
    public string status { get; set; }
    public string message { get; set; }
    public List<object> validation { get; set; }
    public Data data { get; set; }
}

public class LinkedCard
{
    public string cardNumber { get; set; }
}

public class JointParty
{
    public string jointName { get; set; }
}

public class Account
{
    public string accountNumber { get; set; }
    public string accountNickName { get; set; }
    public List<LinkedCard> linkedCards { get; set; }
    public List<JointParty> jointParty { get; set; }
    public List<object> productValidation { get; set; }
}

public class Transaction
{
    public string accountNumber { get; set; }
    public string valueDate { get; set; }
    public string transactionDetails { get; set; }
    public string postDate { get; set; }

}

public class Data
{
    public Account account { get; set; }
    public List<Transaction> transactions { get; set; }
}

當我使用_mapper.Map<CASADetialsResponse>(casaResponse); 我收到此錯誤:

錯誤映射類型:

映射類型:CASADetails -> CASADetialsResponse AccountManagement.Domain.CASADetails -> AccountManagement.Application.Dtos.CASADetails.CASADetialsResponse 類型映射配置:CASADetails -> CASADetialsResponse AccountManagement.Domain.CASADetails -> AccountManagement.Application.Dtos.CASADetialsDtos數據

這就是我映射兩個類的方式,

public class CASADetailsProfile : Profile
{
    public CASADetailsProfile()
    {
        // Source -> Target
        CreateMap<CASADetialsRequest, CASADetails>();
        CreateMap<CASADetails, CASADetialsResponse>();
    }
}

我剛剛評論了public Data data { get; set; } public Data data { get; set; } public Data data { get; set; }從兩個類,並沒有任何錯誤的工作。 我認為問題在於那條線。 我可以知道原因嗎? 請幫我

Data 類的命名空間不同,即使它們的內容相同。

刪除這些

在此處輸入圖片說明

並引用源數據類命名空間或

如果你不想刪除它們,添加以下配置

public class CASADetailsProfile: Profile
{
    public CASADetailsProfile()
    {
        // Source -> Target
        CreateMap<CASADetialsRequest, CASADetails>();
        CreateMap<CASADetails, CASADetialsResponse>();

        
        CreateMap<Sources.Data, Destinations.Data>();
        CreateMap<Sources.Account, Destinations.Account>();
        CreateMap<Sources.Transaction, Destinations.Transaction>();
        CreateMap<Sources.Transaction, Destinations.Account>();
        CreateMap<Sources.LinkedCard, Destinations.LinkedCard>();
        CreateMap<Sources.JointParty, Destinations.JointParty>();
    }
}

將 Sources 命名空間和 Destinations 命名空間更改為您擁有的命名空間

暫無
暫無

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

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