数字类型的Odata类型转换

时间:2016-01-06 14:56:06

标签: entity-framework-6 odata

我有我的实体的基类

public abstract class BaseEntity : IEntity, IAuditable
{
    public long Id { get; set; }
    ...
}

和两个ODATA端点继承EntityFrameworkDataService。

我的第一项服务是使用视觉工作室设计器生成的EDMX,并且在浏览器上Id属性被序列化为您可能期望的数字类型。

对于第二个端点,我决定放弃EDMX并使用流畅的配置,但是这次浏览器上的Id属性被序列化为字符串。

为什么会这样?是否需要额外的配置来告诉运行时我希望我的长类型在json中被序列化为数字?

1 个答案:

答案 0 :(得分:0)

您的Idlong类型。对于long值,它会跟踪odata规范以序列化为JSON:

OData spec说:

IEEE754Compatible = true格式参数表示服务必须序列化 Edm.Int64 (长)和 Edm.Decimal (十进制)数字(包括odata) .count,如果要求的话)为字符串。这符合I-JSON

如果未指定或指定为IEEE754Compatible = false,则所有数字必须序列化为JSON编号。