如何在ODataURL中寻址使用复合标识键的实体?
我有一个实体OrderItem,其中包含OrderId和ProductId整数字段,这两个字段构成此表的标识键/主键。如何在ODataURL中寻址使用复合标识键的实体?,url,entity,odata,asp.net-web-api,composite-primary-key,Url,Entity,Odata,Asp.net Web Api,Composite Primary Key,我有一个实体OrderItem,其中包含OrderId和ProductId整数字段,这两个字段构成此表的标识键/主键。 我希望使用OData/WebAPI通过服务公开这些实体,并能够通过它们的组合ID选择OrderItem实例 URL的格式应该是什么 是否有处理此类场景的最佳实践 URL中的复合键使用如下语法: ~/OrderItems(OrderId=1234,ProductId=1234) “语法”是在中定义的(参见“compoundKey”的定义) 示例用法可在OASIS的 请注意,“复
我希望使用OData/WebAPI通过服务公开这些实体,并能够通过它们的组合ID选择OrderItem实例 URL的格式应该是什么
是否有处理此类场景的最佳实践 URL中的复合键使用如下语法:
~/OrderItems(OrderId=1234,ProductId=1234)
“语法”是在中定义的(参见“compoundKey”的定义)
示例用法可在OASIS的
请注意,“复合键”(也称为“复合键谓词”)已经存在。首先,您必须确保在配置文件中明确提到它有一个复合键
builder.EntityType<OrderItem>().HasKey(t => new { t.OrderId, t.ProductId});
builder.EntityType().HasKey(t=>new{t.OrderId,t.ProductId});
然后,该操作应具有以下标题
public SingleResult<OrderItem> Get([FromODataUri] string keyOrderId, [FromODataUri] string keyProductId)
public SingleResult Get([FromODataUri]字符串keyOrderId,[FromODataUri]字符串keyProductId)
请注意用于两个参数的前缀(键)
这是OData V4。另请参阅