如果我GetFoo().Count()
从我的 DB 类之外的方法调用,Entity Framework 5 会执行相当低效的 SELECT 查询而不是 COUNT。通过阅读其他一些类似的问题,我看到这是预期的行为。
public IEnumerable<DbItems> GetFoo()
{
return context.Items.Where(d => d.Foo.equals("bar"));
}
因此,我在我的 DB 类中添加了一个 count 方法,它可以正确执行 COUNT 查询:
public int GetFooCount()
{
return context.Items.Where(d => d.Foo.equals("bar")).Count();
}
为了避免我多次指定查询,我想将其更改为以下内容。然而,这再次执行 SELECT,即使它在 DB 类中。为什么会这样——我该如何避免呢?
public int GetFooCount()
{
return this.GetFoo().Count();
}