【问题标题】:WebApi OData $select and Getters and SettersWebApi OData $select 和 Getters 和 Setters
【发布时间】:2015-11-04 07:41:58
【问题描述】:

我在我的 WebApi2 项目中使用 OData,我正在查询一个模型,它的值作为编码的 HTML 字符串存储在数据库中 -

    public class Document : BaseEntity
    {
        private string _subject;
        public string Subject
        {
            get { return HttpUtility.HtmlDecode(_subject); }
            set { _subject = value; }
        }
   } 

当我使用带有 $select 操作的 OData 查询此实体时,OData 直接读取该行并且它不通过 EF 文档映射器,因为值不通过解码。是否有某种中间件可以拦截读取并解码这些 OData 查询的字符串?

【问题讨论】:

    标签: c# asp.net-web-api entity-framework-6 odata asp.net-web-api2


    【解决方案1】:

    不,OData 查询实际上变成了 LinqToEntity 并查询 DB 以获取数据,如果这些属性映射到 DB,更改模型的 get 方法中的内容无济于事,如果解码结果不是动态的,您可以创建一个新的模型并返回,如果它是动态的,可能你可以使用 OData 中的Open type 功能,将你的解码结果放入字典然后返回。

    那么你的 $select 应该可以工作了。

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 2023-03-06
      • 2016-06-11
      • 2013-02-25
      • 2019-03-24
      • 1970-01-01
      相关资源
      最近更新 更多