老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

如何理解.NETCoreDto映射-創新互聯

如何理解.NET Core Dto映射,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創新互聯建站主要從事網站建設、成都做網站、網頁設計、企業做網站、公司建網站等業務。立足成都服務松陽,10余年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18980820575
我們假設一個場景, 采用EF Core+Web Api, 這時候可能會出現EF Core中的Entity Model和在項目中使用的Model之間對應關系出現偏差, 如果使用屬性意一一對應, 不免會有大量的工作量

好了,接下來直接上代碼來說明。

EntityModels.Employee.cs

public class Employee
{
    public Guid Id { get; set; }
    public Guid CompanyId { get; set; }
    public string EmployeeNo { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Gender Gender { get; set; }
    public DateTime DateOfBirth { get; set; }
    public Company Company { get; set; }
}

Models.EmployeeDto.cs

public class EmployeeDto
{
    public Guid Id { get; set; }
    public Guid CompanyId { get; set; }
    public string EmployeeNo { get; set; }
    public string Name { get; set; }
    public string GenderDisplay { get; set; }
    public int Age { get; set; }
}

我們可以觀察到, 兩個實體之間有很多不同的地方, 比如名字拆分啊, 出生日期和年齡啊等等, 我之前的做法就是硬生生手寫代碼轉換, 但是經過學習大佬們的代碼, 發現了一個類庫, 在此算是記錄一下吧

AutoMapper.Extensions.Microsoft.DependencyInjection

可以通過NuGet安裝,使用的時候也非常簡單, 建立Profile文件夾, 新建一個EmployeeProfile類, 繼承于Profile。

public class EmployeeProfile: Profile
{
    public EmployeeProfile()
    {
        CreateMap()
            .ForMember(dest => dest.Name,
                opt => opt.MapFrom(src => $"{src.FirstName} {src.LastName}"))
            .ForMember(dest => dest.GenderDisplay,
                opt => opt.MapFrom(src => src.Gender.ToString()))
            .ForMember(dest => dest.Age,
                opt => opt.MapFrom(src => DateTime.Now.Year - src.DateOfBirth.Year));
    }
}

在使用的時候只需要這樣, 注入mapper, 然后就是很簡單的操作了, 簡直了, 功能非常強大!!!

[ApiController]
[Route("api/companies/{companyId}/employees")]
public class EmployeesController: ControllerBase
{
    private readonly IMapper _mapper;
    private readonly ICompanyRepository _companyRepository;
    public EmployeesController(IMapper mapper, ICompanyRepository companyRepository)
    {
        _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
        _companyRepository = companyRepository ?? throw new 
            ArgumentNullException(nameof(companyRepository));
    }
    [HttpPost]
    public async Task<1actionresult>
        CreateEmployeeForCompany(Guid companyId, EmployeeAddDto employee)
    {
        if (!await _companyRepository.CompanyExistsAsync(companyId))
        {
            return NotFound();
        }
        var entity = _mapper.Map(employee);
        _companyRepository.AddEmployee(companyId, entity);
        await _companyRepository.SaveAsync();
        var dtoToReturn = _mapper.Map(entity);
        return CreatedAtRoute(nameof(GetEmployeeForCompany), new
        {
            companyId = companyId,
            employeeId = dtoToReturn.Id
        }, dtoToReturn);
    }
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯網站建設公司,的支持。


當前文章:如何理解.NETCoreDto映射-創新互聯
文章分享:http://www.xueling.net.cn/article/pojes.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美三级不卡在线观看 | 久久最新精品视频 | 日本少妇高潮正在线播放 | 亚洲精品日日夜夜 | 免费的api接口网站 殴美成人在线视频 | 深夜福利1000 | 日本一二区不卡 | 91精品久久久久久蜜桃 | 999精品国产人妻无码系列 | 久久精品国产亚洲综合色 | 日韩精品国产精品 | 欧洲精品久久久 | 久久精品国产精品国产一区 | 亚洲一区二区三区在线网址 | 狂野欧美性猛交xxxxx视频 | 悠悠资源AV男人免费站 | 日本午夜成年在线网站 | 日本不卡一二区 | 老头把我添高潮了A片故视频 | 222aaa精品影院 | 久久成年人 | 男女啪啪激烈高潮免费动态图 | 精品一区二区三区免费在线观看 | 日本人妻出轨中文字幕 | 国产一级桃视频播放 | 好看av在线| 私人影院在线播放 | 69精品久久 | 欧美日韩在线精品一区二区三区 | 成人av免费在线播放 | 猫咪永久入口网址 | 亚洲乱亚洲乱妇91p丰满 | 亚洲一级片网站 | 麻豆91免费 | 国产一区二区三区四区成男人 | 人人干天天操 | 在线国产播放 | 久久精品久久精品亚洲人 | 日韩在线视频欧美 | gav成人免费播放器 男人操女人视频在线观看 日本在线免费 | 美女裸体18禁免费网站 |