第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 C# 中將一個對象轉(zhuǎn)換為另一個對象

在 C# 中將一個對象轉(zhuǎn)換為另一個對象

C#
慕桂英3389331 2022-11-13 14:18:10
我是 C# 的新手,dotnet 核心。我正在從數(shù)據(jù)庫中獲取數(shù)據(jù),如下所示。這個數(shù)據(jù)很平淡。我需要轉(zhuǎn)換為另一個對象。public class Lead    {        public long Id { get; set; }        public short LeadCreatorId { get; set; }        public short LeadOwnerId { get; set; }        public string ProductId { get; set; }        public LeadPriority Priority { get; set; }        public LeadStatus Status { get; set; }        public long LeadCustomerId { get; set; }          public string FirstName { get; set; }        public string LastName { get; set; }        public string EmailAddress { get; set; }        public string MobileNo { get; set; }        public DateTime CreatedOn { get; set; }    }我需要將其轉(zhuǎn)換為以下對象。public class LeadDto    {        public long Id { get; set; }        public short LeadCreatorId { get; set; }        public short LeadOwnerId { get; set; }        public string ProductId { get; set; }        public LeadPriority Priority { get; set; }        public LeadStatus Status { get; set; }        public LeadCustomer LeadCustomer { get; set; }        public DateTime CreatedOn { get; set; }    }LeadCustomer 如下所示 -public class LeadCustomer{            public long Id { get; set; }            public string FirstName { get; set; }            public string LastName { get; set; }            public string EmailAddress { get; set; }            public string MobileNo { get; set; }}我怎樣才能輕松做到這一點?我可以使用 dto 進(jìn)行轉(zhuǎn)換嗎?
查看完整描述

4 回答

?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗 獲得超2個贊

它們是互聯(lián)網(wǎng)上的許多映射器庫。僅舉幾例

  • 自動映射器

  • 映射器

  • 發(fā)射映射器

他們都有自己的優(yōu)點和缺點。我個人覺得編寫自己的映射器方法是值得的,因為您將完全控制自己編寫的內(nèi)容。

我同意這可能需要一些時間,但不會花這么長時間。


查看完整回答
反對 回復(fù) 2022-11-13
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗 獲得超3個贊

由于LeadDto并LeadCustomer取決于Lead:


一種選擇是添加一個構(gòu)造函數(shù),并將LeadDto對象作為參數(shù)并映射到屬性。LeadCustomerLead


另一種選擇是創(chuàng)建靜態(tài)擴(kuò)展方法。


public static LeadDto ToLeadDto(this Lead lead)

{

   return new LeadDto(){

      this.Id = lead.Id;

      // Etc..

   }

}

然后你可以使用像


LeadDto myObj = someLead.ToLeadDto();

另一種選擇是使用諸如 AutoMapper 之類的庫。我從來沒有使用過它,并且對于您聲明的需求來說太過分了,IMO。


查看完整回答
反對 回復(fù) 2022-11-13
?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊

一個簡單直接的方法可能是在 Lead 類上有一個函數(shù)來返回您需要的對象。


public class Lead

{

    //// your properties

    public LeadDto GetOtherObject()

    {

        LeadDto object = new LeadDto();

        ////Map properties from this to object

        return object;

    }

}

否則,如果上述方法在給定的上下文中似乎不正確,則您可以使用靜態(tài)實用程序功能。


public static class Utility

{

    public static LeadDto GetOtherObject(Lead leadObject)

    {

        LeadDto object = new LeadDto();

        ////Map properties from leadObject to object

        return object;

    }

}

如果 的耦合LeadDto嚴(yán)格只與 Lead 耦合,則可以Lead在 的構(gòu)造函數(shù)中有一個對象作為參數(shù)本身LeadDto。


在將屬性從 Lead 映射到 LeadDto 時,請確保您考慮LeadPriority并LeadStatus謹(jǐn)慎,因為它們可能會根據(jù)它們是結(jié)構(gòu)還是類而以不同方式工作。


查看完整回答
反對 回復(fù) 2022-11-13
?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊

正如@G_S 所建議的那樣,我使用了如下所示的自動映射器 -


        CreateMap<Lead, LeadDto>()

            .ForMember(desc => desc.LeadCustomer, opt => opt.ResolveUsing(src =>

            {

                return new LeadCustomer()

                {

                    Id = src.LeadCustomerId,

                    FirstName = src.FirstName,

                    LastName = src.LastName,

                    EmailAddress = src.EmailAddress,

                    MobileNo = src.MobileNo

                };

            }));


查看完整回答
反對 回復(fù) 2022-11-13
  • 4 回答
  • 0 關(guān)注
  • 471 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號