簡體   English   中英

WebAPI OData v3復合密鑰刪除

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM