.NET之AutoMapper對象映射工具運用

來源:互聯網
上載者:User

標籤:搜尋   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對象映射工具運用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.