2016-09-06 99 views
0

我在使用Xamarin/C#移動應用程序中的解析。我正在嘗試通過updatedAt字段查詢表,以便我可以減少由我的應用程序進行的數據調用的數量。我正在使用本地SQlite數據庫中最新的「updatedAt」日期查詢我的Parse DB。唯一的問題是Parse返回該表中的所有項目。這裏是我的功能: -Parse.com - C#查詢「updatedAt」返回不正確的結果

public static async Task getNewLiveTips(Action<bool> callback) 
    { 
     DateTime lastDate = App.Current.modelManager.GetOnlyLocalTip().updatedAt; 

     if (lastDate != null) { 

      var query = new ParseQuery<ParseTip>(); 
      query.WhereGreaterThanOrEqualTo("updatedAt", lastDate); 
      IEnumerable<ParseTip> parseTips = await query.FindAsync(); 

      foreach (var tip in parseTips) 
      { 
       Log.Debug(TAG, "Adding new updated live tip item"); 
       App.Current.modelManager.SaveLocalTip(ModelUtils.parseToLocalTip((ParseTip)tip)); 
      } 
     } 

     callback(true); 
    } 

我不做日期的任何操作任何地方,所以從我的本地SQLite數據庫的日期如下: -

06/09/2016 12:50:02 

返回的日期是: -

06/09/2016 15:14:23 
17/08/2016 21:12:31 

正如您所看到的,其中一個日期更近,其中一個日期更早。任何人都能發現我的問題嗎

感謝

+0

2016年6月9日15時14分23秒 - 是最近的 17/08/2016 21:12:31 - 不太近 查詢應該使用「GreaterThan」查詢的任一端。 我也收到06/09/2016 12:50:02商品。 –

回答

0

沒有設法弄清楚爲什麼這個功能沒有工作,但我設法得到相同的結果做: -

private static async Task getAllLiveTips() 
    { 
     var query = new ParseQuery<ParseTip>().OrderByDescending("updatedAt").Limit(5); 
     IEnumerable<ParseTip> parseTips = await query.FindAsync(); 

     if (parseTips != null) 
     { 

      foreach (var liveTip in parseTips) 
      { 
       Log.Debug(TAG, "Adding live tip item"); 
       App.Current.modelManager.SaveLocalTip(ModelUtils.parseToLocalTip(liveTip)); 
      } 
     } 
    }