OData v4 WebAPI - Получить объект из ODataController

В моем OdataController я выставляю объект Customer (в качестве примера). У меня есть метод:

Get()

Это прекрасно работает. Чтобы вернуть единый объект, у меня есть этот метод:

GetCustomer(int key)

Это также прекрасно работает.

* Так вот мой вопрос *

Является ли GetCustomer единственным сигнатурным вариантом для возврата одного объекта? Я не уверен, как ODataController знает, как разрешить эту подпись метода, но Im задается вопросом, существует ли общий способ определить это.

1 ответ

GetCustomer по умолчанию получит свойство Client.Customer navigation. Теперь вы сохраните вопрос о stackoverflow;) Наверху получите единый объект, который вы можете просто использовать Get (int/string key) следующим образом:

Предположим, что 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);
}
</customer></customer></customer>

Надеюсь, поможет.

licensed under cc by-sa 3.0 with attribution.