【发布时间】:2013-08-10 18:51:30
【问题描述】:
如果我从我的 DB 类之外的方法调用 GetFoo().Count(),Entity Framework 5 会执行相当低效的 SELECT 查询而不是 COUNT。通过阅读诸如this 之类的其他一些问题,我发现这是预期的行为。
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();
}
【问题讨论】:
-
Context.Items.Count(d => d.Foo == "bar");你不需要 Where 调用:)
标签: c# sql sql-server entity-framework entity-framework-5