为了账号安全,请及时绑定邮箱和手机立即绑定

URI 中指定的查询无效。在类型上找不到名为“Name”的属性

URI 中指定的查询无效。在类型上找不到名为“Name”的属性

C#
函数式编程 2023-09-09 16:11:35
当 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);


查看完整回答
反对 回复 2023-09-09
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信