国产探花免费观看_亚洲丰满少妇自慰呻吟_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);

}

□ 要點

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南丰县| 绥芬河市| 峨边| 沂源县| 房产| 邳州市| 赫章县| 贺州市| 什邡市| 仙居县| 阿坝县| 鄂托克旗| 汉川市| 伊通| 岳普湖县| 报价| 阿拉善盟| 乌拉特前旗| 万山特区| 合肥市| 齐河县| 利川市| 泗洪县| 大埔区| 武山县| 嘉兴市| 汝阳县| 山阴县| 贡山| 太和县| 泾阳县| 平山县| 霍州市| 吕梁市| 隆子县| 额敏县| 盘锦市| 当阳市| 哈密市| 沿河| 桂林市|