过滤器收集的OData uri为空或任何eq 4

rid*_*nsb 6 c# odata asp.net-web-api asp.net-web-api-odata

使用OData,我该如何制作这个过滤器?

我的课:

public class Aviso
{
    public int Id { get; set; }
    public virtual ICollection<User> Destinatarios { get; set; }
    public string Url { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

uri尝试: /odata/avisos?$filter=(Destinatarios eq null or Destinatarios/count eq 0 or Destinatarios/any(it:it/Id eq 4) )

目标是返回任何Destinatarios4或集合为空(或null)的位置.

Rag*_*nti 20

尝试,

/odata/avisos?$filter=not Destinatarios/any() or Destinatarios/any(d: d/Id eq 4)
Run Code Online (Sandbox Code Playgroud)

我们处理空传播时,您不需要空检查.此外,拥有null集合通常不是一个好习惯,因为它会导致null和空集合之间的混淆.