odata在数据库上还是在我的iis主机上做过滤?



如果我在ASP中实现以下api toystore.com/api/toys?$select=prodId&$filter=startswith(CompanyId,'lego')。. NET, MVC,使用odata3和EF。该查询是否在我的数据库(索引和善于过滤)上进行评估,或者我是否检索所有100k行,然后在内存中的IIS web服务器上过滤它们?如果是后者,有没有办法让它更高效。由于

edit -澄清…"can"asp.net odata查询是否对数据库进行过滤,或者它们是否总是在IIS上进行评估?

related:启用OData URL查询延迟加载

如果返回IQueryable,则在sql查询中添加条件。因此,它不会从数据库中提取所有数据。如果你返回一个IEnumerable而不是IQueryable,它会把所有的数据拉出来并在iis中过滤。

我希望我帮了你。

最新更新