Automapper显式扩展和默认值

时间:2019-06-17 15:44:11

标签: c# asp.net-web-api2 automapper

使用自动映射器,可以将属性设置为要求explicit expansion。使用此选项,如果查询未明确请求扩展该属性,则Automapper不会映射该字段,并且该字段将为null。

在这种情况下,我正在寻找一种提供默认值的方法。具体来说,当将此选项应用于代表集合的属性时,如果不进行扩展,则不返回null而是返回键标识符列表。

Automapper确实提供了一些用于设置default values的功能,但它似乎仅支持静态值。在这种情况下,这是行不通的,因为只有在请求之前才知道数据收集。

此外,我使用动态作为目标类型,所以我认为int数组与复杂对象数组之间的区别应该不是问题。

我要实现的快速示例,成员需要明确扩展

GET: www.myapi.com/goups/3?$expand=members   returns-
{
  "id": 3,
  "name":"GroupA",
  "members": [
    { "id":1, "name":"Bob" },
    { "id":2, "name":"Sue" }
  ]
}

GET: www.myapi.com/goups/3   returns-
{
  "id": 3,
  "name":"GroupA",
  "members": [1,2]
}

0 个答案:

没有答案