在这里使用一些代码:
...作为查询WAMS表的“灵感”,我提出了这个:
public static async Task<string> GetMammalDeviceID(string mammalID, string zoologistDeviceID)
{
IMobileServiceTable<DUCKBILLED_PLATYPI> table = App.MobileService.GetTable<DUCKBILLED_PLATYPI>();
MobileServiceTableQuery<String> query =
table.Where(i => i.mammalID == mammalID).
Where(j => j.zoologistDeviceID == zoologistDeviceID).
Select(k => k.mammalDeviceID);
return query.ToString();
}
我怀疑,这是否真的是“做到这一点的方式”,甚至是一种好方法。有没有人有查询WAMS表的示例代码,这些代码会让我直截了当?
同样,以下哪项是插入记录的首选方法?
此:
DUCKBILLED_PLATYPI platypus = new DUCKBILLED_PLATYPI { mammalID = mammalEmail, zoologistDeviceID = zoologistDeviceID, zoologistName = zoologistName };
await App.MobileService.GetTable<DUCKBILLED_PLATYPI>().InsertAsync(platypus);
......或者这个:
DUCKBILLED_PLATYPI platypus = new DUCKBILLED_PLATYPI { mammalID = mammalEmail, zoologistDeviceID = zoologistDeviceID, zoologistName = zoologistName };
IMobileServiceTable<DUCKBILLED_PLATYPI> platypi = App.MobileService.GetTable<DUCKBILLED_PLATYPI>();
await platypi.InsertAsync(platypus);
答案 0 :(得分:2)
query.ToString()
将为您提供底层移动服务类的字符串表示形式,例如Microsoft.WindowsAzure.MobileServices.MobileServiceTableQuery``1[System.String]
可能不是您想要的!
我假设您想要返回实际的mammalDeviceID?如果是这样,您需要进行两次调整,
List<String>
而不仅仅是String
。如果您只需要一个,您可以将Take(1)
添加到查询中(但它仍然是一个列表)。 ToListAsync()
应该有效。类似于:
public static async Task<List<string>> GetMammalDeviceID(string mammalID, string zoologistDeviceID)
{
IMobileServiceTable<DUCKBILLED_PLATYPI> table = App.MobileService.GetTable<DUCKBILLED_PLATYPI>();
MobileServiceTableQuery<String> query =
table.Where(i => i.mammalID == mammalID).
Where(j => j.zoologistDeviceID == zoologistDeviceID).
Select(k => k.mammalDeviceID);
return await query.ToListAsync()
}
至于第二部分,除了冗长之外没有区别。我认为第一种选择的流动性更具可读性。