代码之家  ›  专栏  ›  技术社区  ›  Junior

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

  •  0
  • Junior  · 技术社区  · 7 年前

    我正在尝试使用AutoMapper 6.3将模型自动映射到viewmodels。

    首先,我注册了 AutoMapper 实例到我的 IUnitContainer 就像这样

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

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

    我试着做以下事情

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

    但我似乎找不到 ProjectTo 扩展,我认为它将是 自动制表符 项目

    如果我的 AutoMapperProfile 是否已创建映射?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alex Rogers    7 年前

    它似乎在Automapper。QueryableExtensions:

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

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