在指针列上解析查询

时间:2014-08-21 14:25:42

标签: android xamarin parse-platform

我已经问过这个问题,但我会尝试更加具体,希望能更清楚一点。

我有一个xamarin Android项目,使用Parse.com作为后端。我有两个表(或类),一个包含信标列表(称为信标),另一个包含类别列表(称为BeaconCat)。信标类表的标题如下:

ObjectID   |  minor  | major  |  CatID (this is the 'pointer' column to BeaconCat)
111111     |  200     |  999  |   12345

BeaconCat类的标题如下:

   ObjectID  |  Category
    12345    |   Sports

我正在尝试做的是,运行一个传递'次要'号码的查询,在第一个表中查找该号码,并返回第二个表中类别列的值。

所以在上面的例子中,我希望传入200的小调,然后返回字符串'sports'。

看起来应该很容易,但我真的很挣扎。

我一直在尝试以下各种变体:

public async void getBeaconCat(Int32 minor)
  {
    try{

            var innerQuery = ParseObject.GetQuery("Beacons");
            innerQuery.WhereEqualTo("minor", minor);
            innerQuery.Include("CatID");

            var newQuery = ParseObject.GetQuery("BeaconCat");
            newQuery.WhereMatchesQuery("Category", innerQuery);

            IEnumerable<ParseObject> Myresults = await innerQuery.FindAsync();

            foreach (var result in Myresults)
             {

                var category = result.Get<string>("Category");
                Console.WriteLine ("Category is " + category);
             }

            }
                catch{
                    Console.WriteLine ("There was a problem fetching data from parse");
            }

        }

我尝试的任何东西似乎只是直接捕获并且不返回字符串值。

对此有任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

好的,终于明白了。这有效:

public async Task getBeaconCat(Int32 minor)
        {
            try{


                var innerQuery = ParseObject.GetQuery("Beacons").WhereEqualTo("minor", minor).Include("CatID").Include("Category");

                IEnumerable<ParseObject> MyFirstResults = await innerQuery.FindAsync();
                foreach (var result in MyFirstResults)
                {
                    var catObject = result.Get<ParseObject>("CatID");

                    var category = catObject.Get<string>("Category");
                    Console.WriteLine ("The category is......... " + category);
                    return category;

                }

            }
            catch{
                Console.WriteLine ("There was a problem fetching data from parse");
            }

        }