EF DbContext.Set <t>仅过滤记录</t>

时间:2012-02-20 13:43:58

标签: entity-framework-4

我是EF的新手,所以请稍微温和一下我正在使用4.2我只是想知道什么是最好的方法,我可以限制EF只加载过滤数据而不是从数据库中提取所有数据然后对它应用过滤器。

我可以看到DbContext.Set()或DbContext.Set()。AsQueryable();不确定“Where”功能,但它似乎是在相同的原则上工作,即已经加载任何给定表的所有数据,然后对它们应用过滤器不会是一个主要的性能损失?或者我在这里遗漏了什么?我不希望EF从表中获取所有数据,但只过滤了一个。怎么去呢?

感谢

1 个答案:

答案 0 :(得分:1)

Linq查询被转换为SQL,因此如果对查询使用.Where(),则应在不在应用程序中的db站点上执行。请注意,如果您执行类似.ToList()/。ToArray()的操作,然后尝试在其上应用.Where(),则将在客户端站点上进行过滤,因为.ToList()将在应用之前强制执行查询过滤