我该怎么做
SELECT CEILING(COUNT(*) / 10) NumberOfPages
FROM MyTable
在Linq to SQL中?
答案 0 :(得分:1)
许多.NET方法都被转换为SQL Server函数,例如Math类和String类的大多数方法。但有some caveats。
另请查看SqlMethods class,它公开了没有.NET等效的其他SQL Server函数。
但在你的情况下你根本不需要任何这些:
int numberOfPages;
using (var db = new MyDBDataContext())
{
numberOfPages = (int)Math.Ceiling(db.Books.Count() / 10.0);
}
答案 1 :(得分:0)
您不使用SQL CEILING,在LINQ查询中使用.NET ceiling(Math.Ceiling)。
答案 2 :(得分:0)
我不认为这是可能的。 一种可能的解决方案是获取总计数,然后在.NET代码中计算出来。 如下所示:
其中查询是IQueryable
var itemsPerPage = 10;
var currentPage = 0;
var totalResults = query.Count();
var myPagedResults = query.Skip(currentPage).Take(itemsPerPage);
var totalPages = (int)Math.Ceiling((double)totalResults / (double)pageSize);