麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

AutoMapper在MVC中的運(yùn)用02-Decimal轉(zhuǎn)String、集合、子父類(lèi)映射

2019-11-15 02:31:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

AutoMapper在MVC中的運(yùn)用02-Decimal轉(zhuǎn)String、集合、子父類(lèi)映射

本篇AutoMapper使用場(chǎng)景:

※ Decimal轉(zhuǎn)換成String類(lèi)型

※ 源數(shù)組轉(zhuǎn)換成目標(biāo)數(shù)組

※ 源中的集合(數(shù)組)屬性轉(zhuǎn)換成目標(biāo)中的集合(數(shù)組)屬性

※ 子類(lèi)父類(lèi)間的映射

Decimal轉(zhuǎn)換成String類(lèi)型

□ Domain model

public class Order

{

public decimal Amount { get; set; }

}

□ View model

public class OrderListViewModel

{

public string Amount { get; set; }

}

□ 通過(guò)實(shí)現(xiàn)ValueFormatter<>,可以實(shí)現(xiàn)類(lèi)型的轉(zhuǎn)換

public class MoneyFormatter : ValueFormatter<decimal>

{

PRotected override string FormatValueCore(decimal value)

{

return value.ToString("C");

}

}

□ 映射配置

AddFormatter<MoneyFormatter>();

Mapper.CreateMap<Order, OrderListViewModel>();

□ 使用

public ActionResult Index()

{

var order = new Order {Amount = 85M};

var orderListViewModel = Mapper.Map<Order, OrderListViewModel>(order);

return View(orderListViewModel);

}

□ 要點(diǎn)

屬性類(lèi)型的轉(zhuǎn)換,我們可以自定義ValueFormatter<>。

源數(shù)組轉(zhuǎn)換成目標(biāo)數(shù)組

□ Domain model

public class Source

{

public int Value { get; set; }

}

□ View model

public class Dest

{

public int Value { get; set; }

}

□ 映射配置

Mapper.CreateMap<Source, Dest>();

□ 使用

public ActionResult ArraySample()

{

var sourceArray = new[]

{

new Source{Value = 1},

new Source{Value = 5},

new Source{Value = 10}

};

var destArray = Mapper.Map<Source[], Dest[]>(sourceArray);

return View(destArray.ToList());

}

□ 要點(diǎn)

創(chuàng)建映射是單個(gè)類(lèi)之間的映射,但可以根據(jù)源集合獲取到目標(biāo)集合。

源中的集合(數(shù)組)屬性轉(zhuǎn)換成目標(biāo)中的集合(數(shù)組)屬性

□ Domain model

public class Order1

{

private IList<Order1Line> _lineItems = new List<Order1Line>();

public Order1Line[] LineItems

{

get { return _lineItems.ToArray(); }

}

public void AddLineItem(Order1Line orderLine)

{

_lineItems.Add(orderLine);

}

}

public class Order1Line

{

public int Quantity { get; set; }

}

□ View model

public class Order1Dto

{

public Order1LineDto[] LineItems { get; set; }

}

□ 映射配置

Mapper.CreateMap<Order1, Order1Dto>();

□ 使用

public ActionResult ArraySample1()

{

var order1 = new Order1();

order1.AddLineItem(new Order1Line(){Quantity =5});

order1.AddLineItem(new Order1Line(){Quantity = 15});

order1.AddLineItem(new Order1Line(){Quantity = 25});

var order1Dto = Mapper.Map<Order1, Order1Dto>(order1);

return View(order1Dto);

}

子類(lèi)父類(lèi)間的映射

//父類(lèi)

public class Foo

{

public int Value { get; set; }

}

//子類(lèi)

public class Bar : Foo

{

pubic int Value{get;set;}

}

public ActionResult JiCheng()

{

var source = new Bar() {Value = 5};

var dest = Mapper.Map<Bar, Foo>(source);

return View(dest);

}

□ 要點(diǎn)

繼承關(guān)系類(lèi)之間的映射不需要做映射配置


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲欧美一区二区三区在线观看 | 久在线观看福利视频69 | 在线观看国产网站 | 成年性羞羞视频免费观看 | 国产免费福利视频 | 国产亚洲精品久久久久久久久久 | 国产欧美亚洲精品 | 91在线免费观看 | 国产精品视频六区 | 久久成人精品视频 | 中文字幕综合在线观看 | 懂色av懂色aⅴ精彩av | 亚洲一区二区三区视频免费 | h视频免费在线 | 国产欧美一区二区三区免费看 | 成人视屏免费看 | 国产资源在线免费观看 | 国产精品久久久久久久不卡 | 欧美激情综合在线 | 一级美女大片 | 国产成人在线免费观看视频 | 亚欧美一区二区 | 亚洲视色 | 欧美成人免费 | 国产精品久久久久久影院8一贰佰 | 午夜久久久精品一区二区三区 | 久久久久久久黄色片 | 成年人在线免费播放视频 | 懂色粉嫩av久婷啪 | 久久综合综合久久 | 一级黄色电影网站 | 污片在线观看视频 | 日本免费不卡一区二区 | 欧美a视频在线观看 | 日产精品久久久一区二区福利 | 久久久久九九九女人毛片 | 国产精品亚洲精品日韩已方 | 激情夜色 | 成人免费网站在线观看 | 中午字幕无线码一区2020 | 中文在线观看视频 |