小编use*_*088的帖子

OData只读属性

我有一个带OData V4的WebAPI 2.2应用程序.我也在使用EF 6.1.

在我的一个实体中,我有一个计算属性:

public class Person {
  public string FirstName { get; set; }
  public string LastName { get; set; }
  // Calculated Property - No setter
  public string FullName { 
    get {
      return FirstName + " " + LastName;
    }
} 
Run Code Online (Sandbox Code Playgroud)

为了向我的客户提供计算属性,我需要在OData模型中注册

    public static IEdmModel GetModel()
    {
        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.Namespace = "NavigationServices";
        builder.EntityType<Person>;   
        builder.EntityType<Person>().Property(a => a.FullName); // Calculated Property
        ....

        return builder.GetEdmModel();
    }
Run Code Online (Sandbox Code Playgroud)

因此,当我在客户端获取数据时,每个对象都具有Calculated属性.

但是,当我尝试创建(POST)新元素或更新(PUT)现有元素时,我的操作无法识别该元素并生成错误,表明它没有找到该属性的"set方法".

我读了几篇关于OData中只读属性的帖子(显然不支持),但是我没有找到一种方法来使用OData和计算属性.

关于如何克服这种情况的一些建议?

c# entity-framework odata asp.net-web-api

20
推荐指数
2
解决办法
6556
查看次数

标签 统计

asp.net-web-api ×1

c# ×1

entity-framework ×1

odata ×1