[英]WebAPI OData v3 Composite Key Delete
我在OData v3,復合鍵和刪除項方面遇到一些路由問題。 我已經按如下所示設置了控制器和實體(在這里添加了方法,它們在我的實現中已經完成),並且可以對數據運行基本查詢(為GET過濾等)
當我使用DELETE調用url http:// localhost:62658 / OData / ProductStockLimit(StockLimitGroupId = 1,ProductRegexMatch = Test)時 ,我不斷收到消息404,提示“找不到與請求URI匹配的HTTP資源”
我以為路由沒有采用這種方法,但是我不知道為什么所有其他OData路由都可以正確使用Deletes,所以我唯一看到的區別是這是一個復合鍵。
還有其他人有這個問題嗎?
public class ProductStockLimit
{
[Key, Column(Order = 2)]
public string ProductRegexMatch { get; set; }
[Key, ForeignKey("StockLimitGroup"), Column(Order = 1)]
public int StockLimitGroupId { get; set; }
public virtual StockLimitGroup StockLimitGroup { get; set; }
[Column(Order = 3)]
public double Quantity { get; set; }
}
namespace Website.Areas.OData.Controllers
{
public class ProductStockLimitController : ODataController
{
[EnableQuery(AllowedQueryOptions = AllowedQueryOptions.All)]
public IQueryable<ProductStockLimit> Get()
{
}
public IHttpActionResult Post(ProductStockLimit item)
{
}
public HttpResponseMessage Delete( [FromODataUri]int StockLimitGroupId,[FromODataUri] string ProductRegexMatch)
{
}
}
}
從我的觀察來看,似乎OData v3實現不能正確處理復合鍵。 此鏈接具有一個路由約定類,在應用時可以正確處理它們。
請注意,不要為操作方法使用參數名稱“ key”,因為這將導致它嘗試在字典中添加另一個“ key”元素,從而導致異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.