Web UI からのクエリ構成を可能にする関数を使用しています。ObjectDataSource、gridView などの dataBound コントロールで使用できるページング機能を実装します。
public class MyClass<TEntity> where TEntity : class
{
FakeEntities xxx = new FakeEntities();
public IEnumerable<TEntity> Get(Func<IQueryable<TEntity>, IQueryable<TEntity>> queryExpression)
{
var query = xxx.Set<TEntity>();
return queryExpression(query).ToList();
}
public int Count()
{
// What Can I return?
}
}
// **** USAGE ****
MyClass<User> u = new MyClass<User>();
var all = u.Get(p => p.Where(z => z.Account == "Smith").OrderBy(order => order.IdOther).Skip(1).Take(2));
上記のクエリは Take および Skip 関数を使用しているため、エンティティの実際の数を取得できますか? 明らかに、フィルター式を変更せずに Query Count を返さなければなりません。