2016-10-28 49 views
1

我创建了一个与OData一起使用的模型,但在JSON输出中,我想更改属性的名称。我可以更改OData结果中的JSON属性吗?

这是我的模型:

public partial class Z_TESTE_DATA 
{ 
    [Key] 
    public decimal DATA_ID { get; set; } 

    public DateTime DATA_DATE { get; set; } 

    public string DATA_NAME { get; set; } 
} 

而且,代替DATA_ID,DATA_DATE和DATA_NAME,我想改变,例如,DATA_ID_2,DATA_DATE_2和DATA_NAME_2。我可以这样做吗?

+0

您是否使用类似JSON.net的东西将您的模型转换为JSON? –

+0

No. OData将数据自动转换为JSON。 –

回答

1

OData版本4或更高版本支持属性别名。您可以尝试将dataMember属性添加到您的属性中,以为它们提供替代名称,例如

public partial class Z_TESTE_DATA 
{ 
    [Key] 
    [DataMember(Name = "DATA_ID_2")] 
    public decimal DATA_ID { get; set; } 

    [DataMember(Name = "DATA_DATE_2")] 
    public DateTime DATA_DATE { get; set; } 

    [DataMember(Name = "DATA_NAME_2")] 
    public string DATA_NAME { get; set; } 
} 

反过来也是可能的;

public partial class Z_TESTE_DATA 
{ 
    [Key] 
    [DataMember(Name = "DATA_ID")] 
    public decimal DATA_ID_2 { get; set; } 

    [DataMember(Name = "DATA_DATE")] 
    public DateTime DATA_DATE_2 { get; set; } 

    [DataMember(Name = "DATA_NAME")] 
    public string DATA_NAME_2 { get; set; } 
} 
+0

对不起,但没有工作。我的应用程序显示这个错误:'在URI中指定的查询无效。找不到类型为'DSVtoJSON.Models.Models.DbModels.Z_TESTE_DATA'的名为'DATA_DATE'的属性。 –

+0

我确定您已检查过,但您是否在使用OData v4或更高版本? –

+0

我正在使用System.Web.OData,我认为这是v4。在我的模型中,我必须引用一个特定的库? –

相关问题