我正在尝试在Ext.js网格中实现自定义分页,我需要根据页面大小获取表格和记录的总记录。我正在使用编译查询。
但我想只给一个数据库命中。
List<MyTable> .GetRecordsById(Int32 ID, Int32 start, Int32 limit)
{
return CompliedGetRecordsById_CustomPaging(_dbNavigation, ID, start, limit).ToList();
}
/// <summary>
/// Complied query for retrieving manage tasks Custom Paging
/// </summary>
public static readonly Func<SomeEntities, Int32,Int32, Int32, IQueryable<MyTable>> CompliedGetTaskByProjectId_CustomPaging =
CompiledQuery.Compile<SomeEntities, Int32, Int32, Int32, IQueryable<MyTable>>((dbNavigation, ID, start, limit) =>
dbNavigation.SiteTasksMappings.Include("TaskMaster")
.Where(x=> x.myTableID == ID && x.STMIsActive == 1).OrderBy(x=>x.STMID).Skip(start).Take(limit));
这只会根据参数给出记录, 我想从这里返回总记录和自定义记录
答案 0 :(得分:3)
我猜你在使用MS-SQL Server?好吧,这是不可能做到的。你至少需要一个subselect来计算。但这会导致你的匿名结果类型有点难看。
我建议你为这样的表写一个视图,它增加了一个总计数字段。请注意,MS SQL Server支持仅对一个表进行寻址的视图的写入操作。如果您更简单地编写一些存储过程并将它们分配给视图的实体模型。