【问题标题】:OData v4 WebAPI - Get entity from ODataControllerOData v4 WebAPI - 从 ODataController 获取实体
【发布时间】:2020-12-02 21:19:21
【问题描述】:
在我的 OdataController 中,我公开了实体 Customer(例如)。
我有一个方法:
Get()
这很好用。
要返回单个实体,我有这个方法:
GetCustomer(int key)
这也很好用。
*这是我的问题*
GetCustomer 是返回单个实体的唯一签名选项吗?
我不确定 ODataController 是如何知道如何解决此方法签名的,但我想知道是否有通用的方法来定义它。
【问题讨论】:
标签:
asp.net-web-api
odata
odatacontroller
【解决方案1】:
GetCustomer 默认会获得一个 Customer.Customer 导航属性。现在您将在 stackoverflow 上保存一个问题;)
顶部获取单个实体,您可以使用 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);
}
希望对你有帮助。