Return 具有 OData 的实体列表 & Entity Framework

Return a list of entities with OData & Entity Framework

我有一个 OData 方法,我想 return 来自该方法的实体列表。

这是我的代码

public async Task<IHttpActionResult> LoadSpecimenMachinings([FromODataUri] Int32 key)
{
    if (!ModelState.IsValid)
        return BadRequest(ModelState);

    Int32 stage = 1;
    string csvSpecimenCodes = "S0,S1,S2";

    List<Machining> machinings = null;
    var machiningResult = db.LoadSpecimenMachinings(key, stage, csvSpecimenCodes);
    machinings = (from machining in machiningResult select machining).ToList();

    return Created(machinings);
}

当我在 return Created(machinings); 行中 return 编辑实体列表(机加工是我的 Entity Framework 模型中的一个实体)时,我收到以下错误:

"message":" is not an entity type. Only entity types are supported.",
"type":"System.InvalidOperationException"

据我了解,很遗憾 Created 无法接收实体列表作为参数。 有什么方法可以 return 实体列表和 OData 中创建的 HTTP 代码?

我正在使用 OData V3 和 Entity Framework6.

return Created() 设计为仅 return 单个元素并在您执行插入时使用,此 return 是一个 201 Created 状态代码

你应该使用 return Ok(machinings) 这个 return 一个 200 OK 状态码

请参阅有关响应代码的 OData 规范 http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_Toc406398250