Odata没有在SQL级别应用过滤器

时间:2017-01-27 19:36:57

标签: c# sql-server entity-framework odata

我有一个基本的Odata终点,它使用Entity Framework来查询数据库。 当使用一些基本过滤器查询终点时,它似乎正常工作,但我注意到一个有关行为。以下示例将证明我的担忧。

Http GET:

www.api.com?$filter=SomeField eq(一些独特的价值)

将导致以下代码:

 [EnableQuery]
    public IQueryable<vwResultObject> Get()
    {
        try
        {
            var r db.vwResultObject;
            var b = r.toList<vwResultObject>();
            return r;

        }
        catch (System.Exception ex)
        {
            throw;
        }
    }

此代码完全按预期工作,返回值是db中唯一一个与唯一字段匹配的唯一行。但是我担心的是列表“b”的长度等于表中的总行数。这是否意味着过滤器未在sql级别应用?我错过了什么吗?过滤器未应用于SQL级别似乎非常愚蠢,我无法相信这是预期的。我必须在某个时候犯错误。

0 个答案:

没有答案