2016-09-06 11 views
0

私はモバイルアプリケーションでParseを使用しています。私はXamarin/C#で作業しています。私は、私のアプリケーションで行われているデータ呼び出しの量を減らすことができるように、updatedAtフィールドでテーブルをクエリしようとしています。 Parse DBにローカルSQlite DBの最新のupdatedAt日付を照会しています。唯一の問題は、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のDBからの日付は次のようになりますので、私はどこでも日付のいずれかの操作をしない: - 日付が返さ

06/09/2016 12:50:02 

されています -

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

ご覧のとおり、いずれかの日付が最近のもので、日付の1つが古いものです。誰も私の問題を見つけることができますか?

おかげ

+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)); 
      } 
     } 
    } 
関連する問題