2015-01-24 6 views
0

Обновлено:Возврат пользователя и сообщения в Parse Query

Я могу добраться досюда, но я все еще не могу вернуть имя пользователя.

public async void getMessagesFromGroup1(string sGroupObjectId) { 

     try{ 

      var innerQuery = ParseObject.GetQuery("Message").WhereEqualTo("Group", ParseObject.CreateWithoutData("Group", sGroupObjectId)).Include("User"); //.Include("Category"); 

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

      Console.WriteLine("made it past the query"); 

      foreach (var result in MyFirstResults) 
      { 
       Console.WriteLine("made it into forloop"); 

       var category = result.Get<string>("Content"); 
       Console.WriteLine ("The message is......... " + category); 


       var userObject = result.Get<ParseObject>("User"); 
       var user = result.Get<string>("username"); 
       Console.WriteLine ("The from user......... " + user); 
      // return category; 

      } 

     } 
     catch(Exception exception){ 

      Console.WriteLine ("- " + exception.Message.ToString()); 
     } 

    } 

Я создаю приложение для сообщений с использованием Parse и Xamarin.

Мне нужно запросить таблицу сообщений и вернуть содержание каждого сообщения и имя пользователя человека, разместившего сообщение.

Это должно вернуть список.

Я могу получить Message.Content, но не информацию пользователя.

Как я могу вернуть имя пользователя из таблицы пользователя?

Я ценю ваши советы и мысли.

Текущий код:

public async void getMessagesFromGroup(string sGroupObjectId) { 


     // OBJECT ID: ejphwBr3UX 

     var query = from message in ParseObject.GetQuery("Message") 
       where message["Group"] == ParseObject.CreateWithoutData("Group", sGroupObjectId) 
      select message; 

     IEnumerable<ParseObject> results1 = await query.FindAsync(); 

     // List<ParseObject> list = results.ToList; 


     List<ParseObject> list = results1.ToList(); 


     Console.WriteLine ("testing"); 
     try 
     { 

      Console.WriteLine ("test" + list[0].Get<string>("Content") + " "); 

     } 
     catch (Exception exception){ 

      Console.WriteLine ("- " + exception.Message.ToString()); 

     } 
     // Get our button from the layout resource, 
     // and attach an event to it 


    } 
+0

Исключение составляет - Данный ключ не присутствовал в словаре. –

ответ

0

решаемая.

это, как я это сделал ... Я должен был преобразовать объект Синтаксического в parseuser

public async void getMessagesFromGroup1(string sGroupObjectId) { 

     try{ 

      var innerQuery = ParseObject.GetQuery("Message").WhereEqualTo("Group", ParseObject.CreateWithoutData("Group", sGroupObjectId)).Include("User"); //.Include("Category"); 

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

      Console.WriteLine("made it past the query"); 

      foreach (var result in MyFirstResults) 
      { 
       Console.WriteLine("made it into forloop"); 

       var Content = result.Get<string>("Content"); 
       Console.WriteLine ("The message is......... " + Content); 


       var userObject = result.Get<ParseUser>("User"); 
       var user = userObject.Username; 
       Console.WriteLine ("The message is from user......... " + user); 
      // return category; 

      } 

     } 
     catch(Exception exception){ 

      Console.WriteLine ("- " + exception.Message.ToString()); 
     } 

    }