我的服务器中有一个日期属性进入Breeze。它在JSON中看起来像这样。
"CreateTime":"2014-05-22T00:00:00.000"
该属性映射在元数据中,如下所示:
{
"name":"CreateTime",
"type":"Edm.DateTime",
"nullable":"false",
"precision":"7"
}
然而,在查询结果中,日期总是以纪元(1970年1月1日)结束。但是,当实体在Breeze中映射时,会发生 only 。如果我select
反对该实体,以便我返回一个未映射的类型,则日期将通过相同的线路发送,但它可以正常工作。
如何让日期为映射实体正确实现?
使用Breeze v1.4.11
更新
以下是在我的实体上调用getEntityType
的结果:
{
"shortName":"VDisplayEvent",
"namespace":"Model",
"autoGeneratedKeyType":"None",
"defaultResourceName":"VDisplayEvents1",
"dataProperties":[
// Other properties...
{
"name":"createTime",
"dataType":"DateTime",
"isNullable":false,
"defaultValue":"1900-01-01T08:00:00.000Z",
"validators":[
{
"name":"required"
},
{
"name":"date"
}
]
},
// Other properties...
]
}
答案 0 :(得分:1)
发现问题,这不是Breeze的问题。我的应用程序使用的主题依赖于date.js。显然,date.js overrides Javascript's Date.parse()
function,由Breeze的DataType.parseDateAsUTC()
使用。
Date.js的Date.parse()
函数在遇到解析像上面那样的日期字符串时才返回null,这导致了问题。