Parse.com - C#查询“updatedAt”返回错误的结果

时间:2016-09-06 15:39:28

标签: c# android parse-platform xamarin.android

我在移动应用程序中使用Parse我正在使用Xamarin / C#。我试图通过updatedAt字段查询表,以便我可以减少我的应用程序进行的数据调用量。我在我的本地SQlite数据库中使用最新的“updatedAt”日期查询我的Parse DB。唯一的问题是Parse正在返回该表中的所有项目。这是我的功能: -

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 :(得分: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));
            }
        }
    }