C#OData v2仅返回已过滤的扩展实体

时间:2017-04-03 14:32:06

标签: c# asp.net-web-api odata expand

我在上下文中有以下课程

public class Alpha {
   public string UserID {get;set;}
   public User User {get;set;}
   public string BetaID {get;set;}
   public Beta Beta {get;set;}
}
public class Beta {
   public string UserID {get;set;}
   public User User {get;set;}
   public virtual List<Alpha> Alphas {get;set;}
}

和B的web api控制器具有以下方法

[EnableQuery(MaxTop = 100000)]
public List<Beta> GetAll()
{
    return Query().Where(s=>s.UserID == "logedinUserID").ToList(); 
}

现在的问题是,当用户使用上述方法并将&amp; $ expand = Alphas添加到url时,我希望返回给他的扩展Alphas被UserID过滤。这意味着我不希望扩展列表包含所有Alpha,但只包含属于他的那些(UserID =“hisID”)

1 个答案:

答案 0 :(得分:0)

我只能通过使用查询拦截器来看到它(可能还有另一种直接方法)。 像这样:

[QueryInterceptor("Alpha")]
public Expression<Func<Entity,bool>> GetAll()
{
    // implement your logic and return the object

}