簡體   English   中英

在 Automper Asp.net 核心的查詢中映射兩個類

[英]Mapping two classes in a query in Automper Asp.net core

我有兩個類,一個是實體,另一個是視圖 model,我想在查詢時將 map 與自動映射器在所需的服務中相互連接,這樣我就可以使用 IQueryable 提供的延遲加載功能,但是我不知道該怎么做。

映射配置文件:

CreateMap<User, EditProfileViewModel>();

如果我不使用 automapper,我的代碼將如下所示:

public Task<EditProfileViewModel> GetUserForEditProfileAsync(int userId)
=> _users.Select(u => new EditProfileViewModel()
{
    Id = u.Id,
    DisplayName = u.DisplayName,
    Email = u.Email,
    UserName = u.UserName
}).SingleOrDefaultAsync(u => u.Id == userId);

_users: DbSet<User>

我如何使用 autoMapper 實現它?

相應地進行更改。

public class AccountController : Controller
{
    private IMapper mapper;
    public AccountController(IMapper mapper) 
    {
        this.mapper = mapper;
    }


    public Task<EditProfileViewModel> GetUserForEditProfileAsync(int userId)
    {
          var user = await _users.SingleOrDefaultAsync(u => u.Id == userId);
          return mapper.map<EditProfileViewModel>(user)
    }
}

您必須需要具有相同的屬性簽名,否則您必須根據需要配置每個屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM