日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

ASP.NET Core Web中使用AutoMapper進行對象映射

來源: 責編: 時間:2024-05-17 17:49:12 292觀看
導讀前言在日常開發中,我們常常需要將一個對象映射到另一個對象,這個過程中可能需要編寫大量的重復性代碼,如果每次都手動編寫,不僅會影響開發效率,而且當項目越來越復雜、龐大的時候還容易出現錯誤。為了解決這個問題,對象映射

前言

在日常開發中,我們常常需要將一個對象映射到另一個對象,這個過程中可能需要編寫大量的重復性代碼,如果每次都手動編寫,不僅會影響開發效率,而且當項目越來越復雜、龐大的時候還容易出現錯誤。為了解決這個問題,對象映射庫就隨之而出了,這些庫可以自動完成對象之間的映射,從而減少大量的開發工作量,提高開發工作效率。今天我們來講講在ASP.NET Core Web中使用AutoMapper快速進行對象映射。1ii28資訊網——每日最新資訊28at.com

使用對象映射庫有哪些好處?

  • 減少開發工作量,提高開發效率。
  • 減少開發過程中的錯誤和bug。
  • 簡化代碼結構,提高代碼可讀性和可維護性。

AutoMapper對象映射庫介紹

AutoMapper是一個簡單易用的.NET對象映射庫,用于快速、方便地進行對象之間的轉換和映射,極大的簡化了開發人員在處理對象映射時的工作量。1ii28資訊網——每日最新資訊28at.com

  • GitHub開源地址:https://github.com/AutoMapper/AutoMapper
  • 在線文檔地址:https://docs.automapper.org/en/stable/Getting-started.html

安裝AutoMapper NuGet包

在ASP.NET Core Web API項目中搜索:AutoMapper NuGet包安裝。1ii28資訊網——每日最新資訊28at.com

圖片圖片1ii28資訊網——每日最新資訊28at.com

創建源對象和目標對象

接下來我們分別定義一個源對象(Student)和一個目標對象(StudentViewModel)。1ii28資訊網——每日最新資訊28at.com

Student(源對象)

public class Student    {        /// <summary>        /// 學生ID [主鍵,自動遞增]        /// </summary>        [PrimaryKey, AutoIncrement]        [Display(Name = "學生ID")]        public int StudentID { get; set; }        /// <summary>        /// 班級ID        /// </summary>        [Display(Name = "班級ID")]        public int ClassID { get; set; }        /// <summary>        /// 學生姓名        /// </summary>        [Display(Name = "學生姓名")]        public string Name { get; set; }        /// <summary>        /// 學生年齡        /// </summary>        [Display(Name = "學生年齡")]        public int Age { get; set; }        /// <summary>        /// 學生性別        /// </summary>        [Display(Name = "學生性別")]        public string Gender { get; set; }    }

StudentViewModel(目標對象)

public class StudentViewModel    {        /// <summary>        /// 學生ID [主鍵,自動遞增]        /// </summary>        [PrimaryKey, AutoIncrement]        [Display(Name = "學生ID")]        public int StudentID { get; set; }        /// <summary>        /// 班級ID        /// </summary>        [Display(Name = "班級ID")]        public int ClassID { get; set; }        /// <summary>        /// 學生姓名        /// </summary>        [Display(Name = "學生姓名")]        public string Name { get; set; }        /// <summary>        /// 學生年齡        /// </summary>        [Display(Name = "學生年齡")]        public int Age { get; set; }        /// <summary>        /// 學生性別        /// </summary>        [Display(Name = "學生性別")]        public string Gender { get; set; }        /// <summary>        /// 班級名稱        /// </summary>        [Display(Name = "班級名稱")]        public string ClassName { get; set; }    }

配置AutoMapper映射規則

我們可以定義一個AutoMapperMappingProfile的映射配置文件,并在其中定義源類型和目標類型之間的映射關系。1ii28資訊網——每日最新資訊28at.com

using AutoMapper;using Entity;using Entity.ViewModel;namespace WebApi{    /// <summary>    /// AutoMapper映射配置文件    /// </summary>    public class AutoMapperMappingProfile : Profile    {        /// <summary>        /// 添加映射規則        /// </summary>        public AutoMapperMappingProfile()        {            CreateMap<Student, StudentViewModel>();        }    }}

Program中注冊AutoMapper服務

使用AddAutoMapper()方法可以將AutoMapper所需的服務添加到該集合中,以便在應用程序的其他部分中使用。該方法需要傳入一個Assembly數組,以告訴AutoMapper要掃描哪些程序集來查找映射配置(在當前作用域的所有程序集里面掃描AutoMapper的配置文件)。1ii28資訊網——每日最新資訊28at.com

public static void Main(string[] args)        {            var builder = WebApplication.CreateBuilder(args);            builder.Services.AddControllers();            //添加 AutoMapper 的配置            //使用AddAutoMapper()方法可以將AutoMapper所需的服務添加到該集合中,以便在應用程序的其他部分中使用。            //該方法需要傳入一個Assembly數組,以告訴AutoMapper要掃描哪些程序集來查找映射配置(在當前作用域的所有程序集里面掃描AutoMapper的配置文件)。            builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());        }

進行對象映射操作

依賴注入獲取IMapper接口的實例

/// <summary>    /// 學生管理    /// </summary>    [ApiController]    [Route("api/[controller]/[action]")]    public class StudentController : ControllerBase    {        private readonly IMapper _mapper;        /// <summary>        /// 依賴注入        /// </summary>        /// <param name="mapper">mapper</param>        public StudentController(IMapper mapper)        {            _mapper = mapper;        }    }

進行對象映射操作

接下來我們使用使用IMapper接口的Map方法來進行對象映射操作。1ii28資訊網——每日最新資訊28at.com

var studentsListDto = _mapper.Map<List<StudentViewModel>>(students);

映射結果輸出

圖片圖片1ii28資訊網——每日最新資訊28at.com

完整示例源代碼

  • https://github.com/YSGStudyHards/EasySQLite

圖片 圖片 1ii28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-88937-0.htmlASP.NET Core Web中使用AutoMapper進行對象映射

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何使用 SwiftUI 構建 visionOS 應用

下一篇: 基于Node.js從零構建自動化出碼工作流

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲精品中文在线| 国产精品视频专区| 久久久青草婷婷精品综合日韩| 欧美在线视频免费观看| 久久精品国产亚洲一区二区三区 | 国产精品欧美激情| 国产视频丨精品|在线观看| 狠狠综合久久av一区二区小说| 亚洲激情图片小说视频| 一区二区激情视频| 欧美一区二区在线播放| 老色鬼精品视频在线观看播放| 欧美日韩精品免费观看视频完整| 欧美精品成人一区二区在线观看| 国产精品久久久久久超碰 | 国产一级一区二区| 在线观看日韩欧美| 亚洲午夜视频在线| 久久五月天婷婷| 欧美日韩精品综合| 国产一区91精品张津瑜| 亚洲毛片网站| 久久黄色网页| 欧美日韩一区二区三区高清| 国产一区在线看| 99视频日韩| 久久精品首页| 欧美少妇一区二区| 一区免费在线| 亚洲欧美国内爽妇网| 免费看亚洲片| 国产日韩1区| 一区二区高清视频在线观看| 久久久噜噜噜久久中文字免| 国产精品国码视频| 亚洲激情国产| 久久精品国产2020观看福利| 欧美日韩亚洲视频| 亚洲国产精品专区久久| 欧美一级理论性理论a| 欧美精品在线免费观看| 禁断一区二区三区在线| 亚洲欧美日韩一区二区三区在线观看| 欧美成人四级电影| 国产日韩欧美视频| 中文在线资源观看网站视频免费不卡 | 一区二区高清在线| 欧美成年视频| 精品51国产黑色丝袜高跟鞋| 香蕉免费一区二区三区在线观看| 欧美日韩视频在线一区二区观看视频 | 99亚洲视频| 久久综合狠狠| 国产亚洲欧美一区在线观看| 亚洲先锋成人| 欧美日韩一区在线| 亚洲精品视频啊美女在线直播| 久久久久久久久伊人| 国产欧美日韩不卡| 亚洲免费在线精品一区| 欧美日韩国产免费观看| 伊人久久亚洲美女图片| 久久精品国产清高在天天线| 国产精品亚洲综合色区韩国| 中日韩美女免费视频网址在线观看 | 国产一区二区三区黄视频| 亚洲综合色激情五月| 欧美性一区二区| 一区二区三区四区国产| 欧美日韩精品免费观看| 日韩一二三区视频| 欧美理论电影网| 亚洲精品国产欧美| 欧美高清在线观看| 亚洲精品小视频| 欧美激情一级片一区二区| 亚洲国产精品一区二区久| 毛片一区二区| 亚洲丶国产丶欧美一区二区三区| 久久婷婷av| 在线观看一区二区视频| 久久影视精品| 亚洲成人在线视频播放| 美女视频黄 久久| 亚洲夫妻自拍| 欧美99在线视频观看| 亚洲国产日韩欧美一区二区三区| 蜜桃av噜噜一区| 91久久精品美女高潮| 欧美成人一区二区三区片免费| 亚洲国产美女| 欧美日本一道本在线视频| 亚洲美女诱惑| 国产精品videossex久久发布| 亚洲一区二区三区在线播放| 国产精品人成在线观看免费| 欧美影片第一页| 黑人一区二区| 欧美freesex8一10精品| 亚洲日本中文字幕免费在线不卡| 欧美精品国产| 欧美精品成人| 一区二区日韩精品| 国产精品专区一| 久久精品一二三区| 亚洲国产精品久久久| 欧美人体xx| 亚洲综合日韩在线| 一区二区三区在线免费观看| 欧美高清在线观看| 亚洲性xxxx| 国产在线国偷精品产拍免费yy| 久久视频这里只有精品| 亚洲精品影院| 国产精品外国| 玖玖精品视频| 日韩视频免费观看| 国产精品一区二区久久国产| 久久久久久久久久久成人| 亚洲激情欧美| 国产精品免费电影| 久久婷婷久久| 一个色综合导航| 国产一区二区精品久久99| 免费不卡在线视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产亚洲精品bv在线观看| 欧美成人乱码一区二区三区| 亚洲一区二区三区四区在线观看 | 99精品国产一区二区青青牛奶| 国产精品色在线| 美女脱光内衣内裤视频久久网站| 一本大道久久精品懂色aⅴ| 国产日本欧美一区二区| 欧美国产在线视频| 亚洲欧美中文日韩v在线观看| 一色屋精品亚洲香蕉网站| 欧美日韩亚洲一区二区三区在线| 欧美专区在线| 亚洲精品字幕| 国产一区二区三区网站| 欧美日韩精品免费看| 久久久久国产一区二区| 在线一区二区三区四区五区| 黄色成人在线网址| 国产精品yjizz| 免费在线成人| 欧美一区二区精品| 日韩午夜中文字幕| 黄色欧美成人| 国产精品乱码人人做人人爱| 欧美 日韩 国产在线| 欧美一区二区三区日韩视频| 欧美成人亚洲成人日韩成人| 欧美电影免费网站| 狠狠干成人综合网| 在线中文字幕一区| 欧美成人情趣视频| 国产精品中文在线| 国内外成人免费视频| 亚洲乱码国产乱码精品精98午夜| 日韩亚洲视频| 蜜桃精品久久久久久久免费影院| 国内久久精品视频| 亚洲激情在线观看视频免费| 欧美福利在线| 一二三区精品| 久久久www成人免费精品| 欧美天堂亚洲电影院在线播放| 亚洲欧洲综合| 欧美精品尤物在线| 国产精品久久久久久久一区探花| 亚洲国产精品va在线观看黑人| 久久精品综合一区| 精品91在线| 欧美成人一品| 一区二区三区四区精品| 国产精品国产一区二区| 久久中文字幕一区| 欧美在线播放| 亚洲免费视频一区二区| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲精品美女免费| 国产精品久久久久av| 亚洲私拍自拍| 国产欧美一区二区三区久久 | 亚洲欧美另类国产| 国产九色精品成人porny| 久久精品在线视频| 最新国产成人av网站网址麻豆| 欧美日韩国产在线观看| 亚洲欧美日韩另类| 国产亚洲精品高潮| 欧美日韩国产一级片| 麻豆精品精华液| 一区二区三区日韩精品| 国产欧美日韩综合精品二区| 久久精品天堂| 亚洲欧美激情诱惑| 午夜久久美女| 日韩亚洲欧美高清| 亚洲国产婷婷香蕉久久久久久99| 国产在线拍偷自揄拍精品| 免费日韩av电影|