Vik*_*orZ 10 url entity composite-primary-key odata asp.net-web-api
我有一个具有OrderId和ProductId整数字段的实体OrderItem,这两个字段构成了该表的标识键/主键.
我想使用OData/Web API通过服务公开这些实体,并能够通过它们的复合ID选择OrderItem实例.
URL的格式应该是什么?
是否有处理此类方案的最佳做法?
Vit*_*SFT 15
URL中的复合键使用如下语法:
~/OrderItems(OrderId=1234,ProductId=1234)
Run Code Online (Sandbox Code Playgroud)
"语法"在OData ABNF构造规则中定义(参见"compoundKey"的定义)
可以在OASIS的OData版本4.0中找到示例用法.第2部分:URL约定和勘误表03
请注意,自复合OData 1.0以来,"复合键"(又名"复杂键谓词")就已存在.
小智 5
首先,必须确保在配置文件中明确提及它具有复合键
builder.EntityType<OrderItem>().HasKey(t => new { t.OrderId, t.ProductId});
Run Code Online (Sandbox Code Playgroud)
然后,该操作应具有以下标头
public SingleResult<OrderItem> Get([FromODataUri] string keyOrderId, [FromODataUri] string keyProductId)
Run Code Online (Sandbox Code Playgroud)
请注意两个参数都使用了prefix(key)!
这是OData V4。另请参阅https://odata.github.io/WebApi/13-06-KeyValueBinding/
| 归档时间: |
|
| 查看次数: |
12911 次 |
| 最近记录: |