標籤:搜尋 set his creat type dell 集合 pre 工具
AutoMapper對象映射工具:主要是將某一個實體轉成另一個實體。
1.引用NuGet包;搜尋:AutoMapper
2.建立實體類
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AutoMapper{ public static class AutoMapperExtension { /// <summary> /// 單個對象映射 /// </summary> /// <typeparam name="TSource">來源物件</typeparam> /// <typeparam name="TDestination">目標對象</typeparam> /// <param name="source"></param> /// <returns></returns> public static TDestination MapTo<TSource, TDestination>(TSource source) { if (source == null) return default(TDestination); Mapper.Initialize(x => x.CreateMap(typeof(TSource), typeof(TDestination))); return Mapper.Map<TDestination>(source); } /// <summary> /// 集合清單類型映射 /// </summary> /// <typeparam name="TSource">來源物件</typeparam> /// <typeparam name="TDestination">目標對象</typeparam> /// <param name="source"></param> /// <returns></returns> public static List<TDestination> MapToList<TSource, TDestination>(this IEnumerable<TSource> source) { if (source == null) return default(List<TDestination>); Mapper.Initialize(x => x.CreateMap(typeof(TSource), typeof(TDestination))); return Mapper.Map<List<TDestination>>(source); } }}
3.作為例子。建立兩個實體物件
(老會員實體)
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AutoMapper{ public class UserModel { /// <summary> /// 會員編號 /// </summary> public Int32 UserId { get; set; } /// <summary> /// 會員名稱 /// </summary> public String Name { get; set; } }}
新會員實體
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AutoMapper{ /// <summary> /// 新會員表 /// </summary> public class UserNewModel { /// <summary> /// 會員編號 /// </summary> public Int32 UserId { get; set; } /// <summary> /// 會員名稱 /// </summary> public String Name { get; set; } }}
4.使用方法。在項目過程中。如果需要將兩個實體進行轉化。使用執行個體
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace AutoMapper{ public class Extension { /// <summary> /// 將user轉成userNew /// </summary> public static void Model() { var user = new UserModel() { UserId = 1, Name = "王彬" }; var userNew = new UserNewModel(); //將老會員實體轉成新會員實體 var u = AutoMapperExtension.MapTo<UserModel,UserNewModel>(user); } public static void ModelList() { List<UserModel> Users = new List<UserModel>(); var user = new UserModel() { UserId = 1, Name = "王彬" }; Users.Add(user); var userNew = new List<UserNewModel>(); //將老會員實體轉成新會員實體 var ulist = AutoMapperExtension.MapToList<UserModel, UserNewModel>(Users); } }}
.NET之AutoMapper對象映射工具運用