c# - Read data from more than one table using Azure Mobile Services -


i have 3 tables:

table : man

    public string id { get; set; }     [jsonproperty(propertyname = "firstname")]     public string firstname { get; set; }      [jsonproperty(propertyname = "secondname")]     public string secondname { get; set; } 

table : car

 public string id { get; set; }      [jsonproperty(propertyname = "name")]     public string carname { get; set; } 

table: mancar

    public string id { get; set; }      [jsonproperty(propertyname = "manid")]     public string manid { get; set; }      [jsonproperty(propertyname = "carid")]     public string carid { get; set; } 

c# reading date azure code:

public async task<ienumerable<string>> getallcarsbyman(man man)     {          mobileservicecollection<mancar, mancar> data;          imobileservicetable<mancar> datatable = app.mobileservice.gettable<mancar>();         try         {             data = await datatable                 .where(item => item.manid == man.id).select(menuitem => menuitem.carid)                 .tocollectionasync();         }         catch (mobileserviceinvalidoperationexception ex)         {             tools.errorlist.addmessage("azuredataprovider.loaddata" + ex.tostring());         }          return data;     }   public async task<ienumerable<car>> getallcarsforallmen()     {             list<car> listofcars = new list<car>();          mobileservicecollection<man, man> data;          imobileservicetable<man> datatable = app.mobileservice.gettable<man>();      try         {             data = await datatable.where.tocollectionasync();              foreach (var man in data)             {               var cars = await getallcarsbyman(man man);                  if (cars.count>0)                 {                   imobileservicetable<car> datacar = app.mobileservice.gettable<car>();                     foreach (var car in cars)                     {                       data = await datatable.where(item => item.id == car).tocollectionasync();                       if(data[0]!=null)                       {                         listofcars.add(data[0]);                       }                     }                 }                                 }         }         catch (mobileserviceinvalidoperationexception ex)         {             tools.errorlist.addmessage("azuredataprovider.loaddata" + ex.tostring());         }          return listofcars;     }  public async task<ienumerable<string>> getallcarsbyman(man man)     {          mobileservicecollection<mancar, mancar> data;          imobileservicetable<mancar> datatable = app.mobileservice.gettable<mancar>();         try         {             data = await datatable                 .where(item => item.manid == man.id).select(menuitem => menuitem.carid)                 .tocollectionasync();         }         catch (mobileserviceinvalidoperationexception ex)         {             tools.errorlist.addmessage("azuredataprovider.loaddata" + ex.tostring());         }          return data;     } 

when try data tablets it's quite slowly. how can read tables using azuremobileservices ?

as code shows, may possibly know how use linq queries. way using code access db super slow (e.g. result in 1 query run , linq overhead each man cars)
it's best write api (customcontroller) service , use linq join statements retrieve data (single actual query run).
search azure custom api , linq join statements more info