国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

AutoMapper在MVC中的運用02-Decimal轉String、集合、子父類映射

2019-11-15 02:31:48
字體:
來源:轉載
供稿:網友

AutoMapper在MVC中的運用02-Decimal轉String、集合、子父類映射

本篇AutoMapper使用場景:

※ Decimal轉換成String類型

※ 源數組轉換成目標數組

※ 源中的集合(數組)屬性轉換成目標中的集合(數組)屬性

※ 子類父類間的映射

Decimal轉換成String類型

□ Domain model

public class Order

{

public decimal Amount { get; set; }

}

□ View model

public class OrderListViewModel

{

public string Amount { get; set; }

}

□ 通過實現ValueFormatter<>,可以實現類型的轉換

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);

}

□ 要點

屬性類型的轉換,我們可以自定義ValueFormatter<>。

源數組轉換成目標數組

□ 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());

}

□ 要點

創建映射是單個類之間的映射,但可以根據源集合獲取到目標集合。

源中的集合(數組)屬性轉換成目標中的集合(數組)屬性

□ 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);

}

子類父類間的映射

//父類

public class Foo

{

public int Value { get; set; }

}

//子類

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);

}

□ 要點

繼承關系類之間的映射不需要做映射配置


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤庆县| 安西县| 洛南县| 谢通门县| 连城县| 仙桃市| 平凉市| 北辰区| 板桥市| 甘泉县| 长岛县| 静海县| 临潭县| 虞城县| 额尔古纳市| 大姚县| 冀州市| 莱西市| 米易县| 图木舒克市| 黑河市| 青州市| 互助| 怀化市| 攀枝花市| 阿拉善左旗| 都兰县| 甘德县| 陵川县| 汉中市| 潞城市| 金门县| 土默特右旗| 屯留县| 明溪县| 望谟县| 德安县| 丰城市| 鹤峰县| 绵竹市| 抚顺市|