Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ODataURL中寻址使用复合标识键的实体?_Url_Entity_Odata_Asp.net Web Api_Composite Primary Key - Fatal编程技术网

如何在ODataURL中寻址使用复合标识键的实体?

如何在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的 请注意,“复

我有一个实体OrderItem,其中包含OrderId和ProductId整数字段,这两个字段构成此表的标识键/主键。
我希望使用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。另请参阅