Se chiamo lo GetFoo().Count()
da un metodo esterno alla mia classe DB, Entity Framework 5 esegue una query SELECT piuttosto inefficiente anziché un COUNT. Dalla lettura di alcune altre domande come this, vedo che questo è il comportamento previsto.Framework Entity - COUNT anziché SELECT
public IEnumerable<DbItems> GetFoo()
{
return context.Items.Where(d => d.Foo.equals("bar"));
}
Ho quindi aggiunto un metodo di conteggio per la mia classe DB, che esegue correttamente una query COUNT:
public int GetFooCount()
{
return context.Items.Where(d => d.Foo.equals("bar")).Count();
}
di salvarmi da specificare query più volte, mi piacerebbe cambiare questo al seguente Tuttavia, questo esegue nuovamente un SELECT, anche se è all'interno della classe DB. Perché è questo - e come posso evitarlo?
public int GetFooCount()
{
return this.GetFoo().Count();
}
Context.Items.Count (d => d.Foo == "bar"); non ti serve la chiamata Where :) –