Asp.net web api ODataV4 WebAPI-从ODataController获取实体

Asp.net web api ODataV4 WebAPI-从ODataController获取实体,asp.net-web-api,odata,odatacontroller,Asp.net Web Api,Odata,Odatacontroller,在我的OdataController中,我公开了实体客户(作为一个示例)。 我有一个方法: Get() 这个很好用。 要返回单个实体,我有以下方法: GetCustomer(int key) 这也很好用 *这是我的问题* GetCustomer是返回单个实体的唯一签名选项吗? 我不确定ODataController如何知道如何解析此方法签名,但我想知道是否有一种通用的方法来定义此签名。GetCustomer默认情况下将获得Customer.Customer导航属性。现在您将保存一个关于sta

在我的OdataController中,我公开了实体客户(作为一个示例)。 我有一个方法:

Get()
这个很好用。 要返回单个实体,我有以下方法:

GetCustomer(int key)
这也很好用

*这是我的问题*

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

GetCustomer默认情况下将获得Customer.Customer导航属性。现在您将保存一个关于stackoverflow的问题;) Top获取单个实体,您可以按如下方式使用get(int/string键):

假设db是您的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);
}
[启用查询]
公共IQueryable Get()
{
返回db.Customers;
}
[启用查询]
公共单结果获取([FromODataUri]int-key)
{
IQueryable result=db.Customers.Where(p=>p.Id==key);
返回SingleResult.Create(结果);
}
希望能有帮助