哪个应该首先执行.where OR。包含

时间:2013-07-08 19:43:23

标签: asp.net-mvc entity-framework

我有以下存储库方法: -

public IQueryable<AccountDefinition> FindAccountDefinition(string q)
        {
            return from ad in entities.AccountDefinitions.Include(a => a.SDOrganization)
                   where (q == null || ad.ORG_NAME.ToUpper().StartsWith(q.ToUpper()) )
                   select ad;
 }

但是因为我正在应用.include然后.where,所以我不确定如何执行上述内容? 是否将从Dataabse中检索SDOrganization导航属性以获取与where子句匹配的记录,或者导航属性是否将停用,然后进行过滤?

1 个答案:

答案 0 :(得分:1)

AccountDefinition的过滤器将在数据库中执行。对于与过滤器匹配的每一行(不是表格中的所有AccountDefinition行),SDOrganization将被加入。匹配的AccountDefinition及其相关的SDOrganization将返回给客户。