OData v4 Web API - 从OData Controller获取实体

时间:2015-02-16 07:14:11

标签: asp.net-web-api odatacontroller

在我的OdataController中,我暴露了实体Customer(作为示例)。 我有一个方法:

Get()

这很好用。 要返回单个实体,我有这个方法:

GetCustomer(int key)

这也很好。

*所以这是我的问题*

GetCustomer是返回单个实体的唯一签名选项吗? 我不确定ODataController如何知道如何解决此方法签名,但我想知道是否有一种通用的方法来定义它。

1 个答案:

答案 0 :(得分:1)

默认情况下,GetCustomer将获得Customer.Customer导航属性。现在,您将在stackoverflow上保存一个问题;) Top得到一个实体,你可以使用Get(int / string key),如下所示:

假设db是您的数据库上下文实例

[EnableQuery]
public IQueryable<Customer> Get()
{
    return db.Customers;
}

[EnableQuery]
public SingleResult<Customer> Get([FromODataUri] int key)
{
    IQueryable<Customer> result = db.Customers.Where(p => p.Id == key);
    return SingleResult.Create(result);
}

希望它有所帮助。