我在这篇文章中看到,Easy Tables 可以具有关系型数据库的功能,例如连接等,在查询数据时可以结合多个表。不幸的是,我没有找到如何实现这一点的详细信息。
在我的情况下,我有一个名为 "user" 的 Easy Table 和另一个名为 "subject choice" 的 Easy Table,两个表都有共同的 "userid" 属性,我需要根据这两个表中的信息在移动服务应用程序中检索信息。
我该怎么做呢?
public class UserDataService
{
MobileServiceClient mobileService;
IMobileServiceTable<User> userTable;
public void Initialize()
{
mobileService= new MobileServiceClient("http://<your-mobileapp-name>.azurewebsites.net/");
userTable = mobileService.GetTable<User>();
}
public async Task<User> GetUserAsync(string uid)
{
return await this.userTable.LoolupAsync(uid);
}
public async Task AddUserAsync(User user)
{
await this.userTable.InsertAsync(user);
}
}
Easy Tables可以在查询数据时像连接等关系型数据库功能一样具有联接表的功能。
据我所知,您可以在Easy Table中添加外键以创建关系。但是无法在单个查询中检索多个表中的数据。对于您的情况,您可以调用UserDataService.GetUserAsync和SubjectChoiceDataService.GetByUserIdAsync方法来按预期聚合数据。
table.read(function (context) {
var response = context.execute();
response.then(function (records)
{
console.log("Records Fetched: " , records);
// HERE YOU CAN MESS WITH THE DATA
context.res.status(200).send(records);
context.done();
}, function (error)
{
console.log(error);
context.res.status(500).send(error);
context.done();
});
});