C# WebApi OData$select和getter与setter

C# WebApi OData$select和getter与setter,c#,asp.net-web-api,entity-framework-6,odata,asp.net-web-api2,C#,Asp.net Web Api,Entity Framework 6,Odata,Asp.net Web Api2,我正在WebApi2项目中使用OData,我正在查询一个模型,该模型的值以编码HTML字符串的形式存储在数据库中- public class Document : BaseEntity { private string _subject; public string Subject { get { return HttpUtility.HtmlDecode(_subject); } s

我正在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查询的字符串?

否,OData查询实际上成为LinqToEntity并查询DB以获取数据如果这些属性映射到DB,则更改模型的get方法中的内容将帮不上忙,如果解码结果不是动态的,您可以创建一个新模型并返回该模型,若它是动态的,可能是您可以在OData中使用该特性,将解码结果放入字典中,然后返回

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