當 odata 請求包含 $select 查詢時,我返回不同的實體。這是我的獲取方法: public IHttpActionResult Get(ODataQueryOptions<Product> queryOptions, CancellationToken cancellationToken) { if (Context == null) Context = MainContext.CreateInstance(); var products = Context.GetEntities<Product>(); if (queryOptions.RawValues?.Select != null) { var goodProducts = MakeGoodProductList(products); // Type of entity is GoodProduct return Ok(goodProducts); } return Ok(products); }當請求時,我收到以下錯誤https://localhost:44326/Products?$select=NameURI 中指定的查詢無效。在“GoodProduct”類型上找不到名為“Name”的屬性。如何在GoodProduct類中不創建 Name 屬性的情況下解決此問題?我正在將SelectExpandand設置Select為 null ODataQueryOptions,ODataRawQueryOptions但它們沒有幫助:typeof(ODataQueryOptions).GetProperty(nameof(queryOptions.SelectExpand)).SetValue(queryOptions, null, null);typeof(ODataRawQueryOptions).GetProperty(nameof(queryOptions.rawQueryOptions.Select)).SetValue(queryOptions.rawQueryOptions, null, null);
1 回答

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
我通過重置解決了問題RequestUri
:
var requestUri = queryOptions.Request.RequestUri;var uri = requestUri.AbsoluteUri.Substring(0, requestUri.AbsoluteUri.Length - requestUri.Query.Length); queryOptions.Request.RequestUri = new Uri(uri);
- 1 回答
- 0 關注
- 112 瀏覽
添加回答
舉報
0/150
提交
取消