讓AutoMapper在你的專案裡飛一會兒

2022-01-30 16:43:02 字數 1726 閱讀 6654

dto是個什麼東東?

dto(data transfer object)就是資料傳輸物件,說白了就是乙個物件,只不過裡邊全是資料而已。

為什麼要用dto?

1、dto更注重資料,對領域物件進行合理封裝,從而不會將領域物件的行為過分暴露給表現層

2、dto是面向ui的需求而設計的,而領域模型是面向業務而設計的。因此dto更適合於和表現層的互動,通過dto我們實現了表現層與領域model之間的解耦,因此改動領域model不會影響ui層

3、dto說白了就是資料而已,不包含任何的業務邏輯,屬於**型的物件,使用時可以根據不同的ui需求進行靈活的運用

現在我們既然知道了使用dto的好處,那麼我們肯定也想馬上使用它,但是這裡會牽扯乙個問題:怎樣實現dto和領域model之間的轉換?

addressdto dto = new

addressdto

;addressdto到address的對映,addressdto的字段countryname要對應address的字段country:

源型別list,目標型別list:

public

class

productbll

public

productdto createproduct(productdto productdto)

public listgetproduct()

);return

arr;

}public

productdto modifyproduct(productdto productdto)

}

using

system.collections;

using

system.collections.generic;

using

system.data;

using

namespace

infrastructure.utility

//////

集合列表型別對映

///public

static listmaptolist(this

ienumerable source)

}//////

集合列表型別對映

///public

static listmaptolist(this ienumerablesource)

//////

型別對映

///public

static tdestination mapto(this

tsource source, tdestination destination)

where tsource : class

where tdestination : class

//////

datareader對映

///public

static ienumerabledatareadermapto(this

idatareader reader)

}}

你可以像下面的栗子這樣使用:

//物件對映

shipinfomodel shipinfomodel = shipinfo.mapto();

//列表對映

list

< shipinfomodel > shipinfomodellist = shipinfolist.maptolist();

讓AutoMapper在你的專案裡飛一會兒

dto是個什麼東東?dto data transfer object 就是資料傳輸物件,說白了就是乙個物件,只不過裡邊全是資料而已。為什麼要用dto?1 dto更注重資料,對領域物件進行合理封裝,從而不會將領域物件的行為過分暴露給表現層 2 dto是面向ui的需求而設計的,而領域模型是面向業務而設計...

讓AutoMapper更好用

public class person public string age public class persondto public string age 按照官方使用方式,我們需要以下幾個步驟 配置對映 o.createmap o.createmap var p new person 進行轉換 ...

讓我留在你身邊

我從來不說話 因為我害怕 沒有人回答 我從來不掙扎 因為我知道 這世界太大 太多時間浪費 太多事要面對 太多已無所謂 太多難辨真偽 太多紛擾是非 在你身邊是誰 最渺小的我 有大大的夢 時間向前走一定只有路口沒有盡頭 紛紛擾擾這個世界 所有的了解 只要 讓我留在你身邊 最渺小的我 有大大的夢 我願意安...