返回OData&的实体列表。实体框架

时间:2015-04-16 19:35:44

标签: c# entity-framework odata

我有一个OData方法,我想从该方法返回一个实体列表。

这是我的代码

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);中返回实体列表(加工是我的实体框架模型中的实体)时,我收到以下错误:

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

据我了解,遗憾的是Created无法接收实体列表作为参数。 有没有办法在OData中返回实体列表和创建的HTTP代码?

我正在使用OData V3和Entity Framework 6。

1 个答案:

答案 0 :(得分:3)

return Created()旨在仅返回单个元素,并在您执行插入时使用,这将返回201 Created状态代码

您应该使用return Ok(machinings)这会返回200 OK状态代码

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

上的OData规范