2016-01-06 44 views
0

的OData类型转换我有这个基类,我的实体数字类型

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

和两个端点ODATA继承EntityFrameworkDataService。

我的第一个服务是使用使用visual studio designer生成的EDMX,并且在浏览器上,Id属性被序列化为数字类型,如您所期望的。

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

为什么会发生这种情况?是否有额外的配置需要告诉运行时,我想我的长类型被序列化为json中的数字?

+0

请发布一些从BaseEntity派生的实体类的流畅配置代码。并从您的$元数据中获取相应的CSDL。 – lencharest

回答

0

您的Idlong类型。对于long价值,它遵循了规范的OData序列化到JSON:


的OData spec说:

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

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