如何触发 AutoMapper 使用 linq 语法映射模型?

How to trigger AutoMapper to map a model using linq syntax?

我正在尝试使用 AutoMapper 6.3 来允许我将我的模型自动映射到视图模型中。

首先,我像这样将 AutoMapper 实例注册到 IUnitContainer

var mapper = new MapperConfiguration(cfg =>
{
    cfg.AddProfile<AutoMapperProfile>();
});

container.RegisterInstance<IMapper>(mapper.CreateMapper()); 

现在,在我的控制器中,我想从数据库中提取一个模型,然后我想 map/cast 它到我的视图模型。

我尝试执行以下操作

var task = UnitOfWork.Tasks.Get(123)
                           .ProjectTo<TaskViewModel>();

但我似乎找不到 ProjectTo 扩展,我认为它将成为 AutoMapper 项目的一部分。

如果我的 AutoMapperProfile 已经创建了映射,投影 viewModel 的正确方法是什么?

好像在Automapper.QueryableExtensions:

https://github.com/AutoMapper/AutoMapper/blob/8dd104aa7390c12c97c4195cce6f6ff66de24f51/src/AutoMapper/QueryableExtensions/Extensions.cs

只要您的 linq 更改中的前一项看起来是 IQueryable,您就可以调用它。