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:
publicclass
productbll
public
productdto createproduct(productdto productdto)
public listgetproduct()
);return
arr;
}public
productdto modifyproduct(productdto productdto)
}
usingsystem.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 進行轉換 ...
讓我留在你身邊
我從來不說話 因為我害怕 沒有人回答 我從來不掙扎 因為我知道 這世界太大 太多時間浪費 太多事要面對 太多已無所謂 太多難辨真偽 太多紛擾是非 在你身邊是誰 最渺小的我 有大大的夢 時間向前走一定只有路口沒有盡頭 紛紛擾擾這個世界 所有的了解 只要 讓我留在你身邊 最渺小的我 有大大的夢 我願意安...