假设我有两个实体位置和假期。假期与位置相关联。因此,在微风中,我可以编写如下的查询来检索与特定位置相关的假期:
return EntityQuery.from('GetLocationById')
.withParameters({ clientId: clientId, locationId : locationId })
.extend("Holidays")
.using(self.manager)
.execute()
.then(querySucceeded, this._queryFailed);
但是,此数据检索是基于权限的。即地点和假期有两种权限。可能是因为用户拥有位置许可,但他可能没有假期权限。无论如何我仍然可以使用extend()方法来检索假期,同时考虑权限?或者,在检查权限后,我是否必须在控制器中公开一个单独的方法来检索假期?
答案 0 :(得分:1)
在您的示例中,您正在调用名为GetLocationById
的控制器操作,而您正在寻找的行为是让操作返回该位置(如果用户有权访问位置)作为相关假期(如果用户有权参加假期)。
一种方法是不在实体查询中使用expand,而是让服务器根据用户权限决定是否包含假日。例如:
public Location GetLocationById(id)
{
var query = context.Locations;
if (user can access holidays)
query = query.Include('Holidays');
return query.Where(l => l.Id == id).SingleOrDefault();
}
我在这里做了很多假设 - 如果我误解了,请原谅我。