2014-01-22 37 views
1

我在breezejs中与日期 - 时间相等。在breezejs中的日期 - 时间相等

我想要做的是查询数据,并只返回自上次同步以来更改的最新记录。

... 
query = query.where('ModifiedDateTime', '>=', lastSyncDate); 

的ModifiedDateTime是在分贝侧的DateTime类型,以及lastSyncDate是上次同步的从new Date(Date.now())

日期时间这工作了一天,但不是的时候,我想要做的是调用getTime()函数来得到一个整数比较像这里描述:Beware equality tests但我不知道如何在where子句中做到这一点?

喜欢的东西

query = query.where(ModifiedDateTime.getTime(), '>=', lastSyncDate.getTime()); 

但显然这是不可能的,有另一种方式做到这一点?

回答

1

浏览器日期时间不太可能与现实世界中的服务器日期时间相同。我认为你需要一种方法来从服务器获取服务器同步日期时间并在请求中使用它。有关如何继续操作的建议很大程度上取决于您如何定义lastSyncDateTime,并且您可能愿意补充客户端/服务器协议以在服务器响应中包含同步日期时间,并在客户端上挖掘,以便在查询中使用它。这些工具在那里,但Breeze没有任何本地功能来支持这一点。

对于开箱即用的微风Web API协议增强功能,您可能会有一个很好的功能请求。您可能会建议我们扩展该协议,以便在响应中包含服务器DateTime(例如,在自定义标题中),并将breeze应用程序开发人员用作查询(和保存)结果的属性之一。

但超越自己。第一步是解释你需要什么以及如何使用它。

+0

病房 - 我有类似的需求。当我的SPA的用户准备将最终更改提交给数据库时,我需要使用服务器日期时间插入记录,而不是浏览器日期时间。这可以作为他们保存变更时的标记。否则,我需要该日期时间在数据库中保持空值。我可以在插入之前查询服务器以获取日期时间,但似乎应该有办法在服务器上执行它。可能“拦截”服务器上breezejs中的保存。想法? – bigerock

+0

“在服务器上拦截”完全是你所做的。我不知道你使用的是什么服务器技术。如果您使用我们的“快乐路径”'ContextProvider',[BeforeSaveEntity' override/delegate](http://www.breezejs.com/documentation/contextprovider/#BeforeSaveEntity)是干预的理想场所。看到 – Ward

相关问题