为了说明AutoMapper如何使用,我专门开设了一个专题来讲,如果您还没有查看该专题,请点击这里。既然系统地学习了AutoMapper,那么接下来就是该用它实战的时候了。今天,我们就来揭开AutoMapper如何在ABP框架中使用的面纱。

因为这里演示的是用ABP框架搭建的项目,本博客的讲解的前提是假设你有了ABP基础,所以,如果您还不了解ABP框架,请查看我的ABP框架的系列博客,请点击这里

下面正式开始今天的讲解。

首先,让我们稍微回忆一下AutoMapper的知识点。

问:什么是AutoMapper?

答:AutoMapper翻译过来就是“自动映射工具”。它的作用就是将一个源类型映射成一个目标类型,比如Person——>PersonDto,User——>UserDto。

问:什么情况下使用AutoMapper?

答:一般在项目的开发中,经常需要将Entity实体映射成ModelDto或者ViewModel,这个时候,使用AutoMapper仅需要简单的配置,就可以实现这些需求,非常方便。

接下来,讲一下项目中的具体配置。

在我的ABP项目中,首先核心层有一个实体类TerminalDevices,类定义如下:

Noah.ChargeStation.Core.Entities 2 { 3 //终端表 4 public class TerminalDevices : Entity 5 { 6 7 /// <summary> 8 /// 终端编码 9 /// </summary> 10 public virtual string Code 11 { 12 get; 13 set; 14 } 15 /// <summary> 16 /// IMEI 17 /// </summary> 18 public virtual string IMEI 19 { 20 get; 21 set; 22 } 23 /// <summary> 24 /// SIMCardNO 25 /// </summary> 26 public virtual string SIMCardNO 27 { 28 get; 29 set; 30 } 31 /// <summary> 32 /// InstallDate 33 /// </summary> 34 public virtual DateTime? InstallDate 35 { 36 get; 37 set; 38 } 39 /// <summary> 40 /// PlacePosition 41 /// </summary> 42 public virtual string PlacePosition 43 { 44 get; 45 set; 46 } 47 /// <summary> 48 /// Version 49 /// </summary> 50 public virtual int? Version 51 { 52 get; 53 set; 54 } 55 /// <summary> 56 /// TotalCoins 57 /// </summary> 58 public virtual int TotalCoins 59 { 60 get; 61 set; 62 } 63 /// <summary> 64 /// CurrentBoxCoins 65 /// </summary> 66 public virtual int CurrentBoxCoins 67 { 68 get; 69 set; 70 } 71 /// <summary> 72 /// 最小计费单位 73 /// </summary> 74 public virtual int MinimumUnit 75 { 76 get; 77 set; 78 } 79 /// <summary> 80 /// 充电时长 81 /// </summary> 82 public virtual int ChargeTime 83 { 84 get; 85 set; 86 } 87 /// <summary> 88 /// MoneyBoxCapacity 89 /// </summary> 90 public virtual int? MoneyBoxCapacity 91 { 92 get; 93 set; 94 } 95 /// <summary> 96 /// 终端名称 97 /// </summary> 98 public virtual string Name 99 { 100 get; 101 set; 102 } 103 /// <summary> 104 /// 终端类型:0--同城类终端 1--跨城类终端 105 /// </summary> 106 public virtual int? Type 107 { 108 get; 109 set; 110 } 111 /// <summary> 112 /// 所属城市 113 /// </summary> 114 public virtual int? CityID 115 { 116 get; 117 set; 118 } 119 /// <summary> 120 /// 所属运营商 121 /// </summary> 122 public virtual int? OperatorID 123 { 124 get; 125 set; 126 } 127 /// <summary> 128 /// 所属站台 129 /// </summary> 130 public virtual int? StationID 131 { 132 get; 133 set; 134 } 135 /// <summary> 136 /// 经度 137 /// </summary> 138 public virtual decimal? Longitude 139 { 140 get; 141 set; 142 } 143 /// <summary> 144 /// 纬度 145 /// </summary> 146 public virtual decimal? Latitude 147 { 148 get; 149 set; 150 } 151 /// <summary> 152 /// 支付宝二维码内容 153 /// </summary> 154 public virtual string AlipayEWMContent 155 { 156 get; 157 set; 158 } 159 /// <summary> 160 /// 支付宝二维码图片 161 /// </summary> 162 public virtual string AlipayEWMImage 163 { 164 get; 165 set; 166 } 167 /// <summary> 168 /// 微信二维码内容 169 /// </summary> 170 public virtual string WechatEWMContent 171 { 172 get; 173 set; 174 } 175 /// <summary> 176 /// 微信二维码图片 177 /// </summary> 178 public virtual string WechatEWMImage 179 { 180 get; 181 set; 182 } 183 /// <summary> 184 /// 正在充电数量 185 /// </summary> 186 public virtual int? ChargingNum 187 { 188 get; 189 set; 190 } 191 /// <summary> 192 /// 上次通讯时间 193 /// </summary> 194 public virtual DateTime? LastConnectTime 195 { 196 get; 197 set; 198 } 199 /// <summary> 200 /// 0--失联 1--正常 2--维修 3--维护4--下线 201 /// </summary> 202 public virtual int? Status 203 { 204 get; 205 set; 206 } 207 /// <summary> 208 /// SystemCode 209 /// </summary> 210 public virtual string SystemCode 211 { 212 get; 213 set; 214 } 215 /// <summary> 216 /// Certificate 217 /// </summary> 218 public virtual string Certificate 219 { 220 get; 221 set; 222 } 223 /// <summary> 224 /// 到期时间 225 /// </summary> 226 public virtual DateTime? DueDate 227 { 228 get; 229 set; 230 } 231 /// <summary> 232 /// 创建人 233 /// </summary> 234 public virtual string CreatedBy 235 { 236 get; 237 set; 238 } 239 /// <summary> 240 /// 创建日期 241 /// </summary> 242 public virtual DateTime? CreatedDate 243 { 244 get; 245 set; 246 } 247 /// <summary> 248 /// 最后更新人 249 /// </summary> 250 public virtual string UpdatedBy 251 { 252 get; 253 set; 254 } 255 /// <summary> 256 /// 最后更新日期 257 /// </summary> 258 public virtual DateTime? UpdatedDate 259 { 260 get; 261 set; 262 } 263 public TerminalDevices() 264 { 265 266 } 267 268 } 269 270 }
View Code

相关文章: