Error on Cout but i am not using Count in my LINQ exrpression,

asp.net-mvc-5, c#, entity-framework-6, linq-to-entities

Solution

I'm not too familiar with EF, but I did come across an old msdn post where someone reported the same bug. They were performing a calculation inside `.Skip()` and to fix it they performed the calculation separately, and just used the result in their LINQ statement.

Try calculating `page * rows` first, then using that result in your LINQ statement:

var skipAmount = page * rows;

var SectionData = new
{
    ...
    ...
    rows = (from s in db.Sections
            select new
            {
                ...
                ...
                .OrderBy(x => sidx)
                .Skip(skipAmount)
                .Take(rows)

Problem

I am trying to return a set of data in JSON formate from a LINQ select ran against my EF Code First DB and am getting the error Count must be a DbConstantExpression or a DbParameterReferenceExpression. Parameter name: count but I am not sure why I am getting it as I am not using a `COUNT` parameter in my LINQ query so why am I getting this error? ``` public ActionResult GetData(string sidx, string sord, int page, int rows) { try { //Get total rows int RowCount = db.Sections.Count(); string OrderBy = (sidx + " " + sord); var SectionData = new { total = (int)Math.Ceiling((float)RowCount / (float)rows), page = page, records = RowCount, rows = (from s in db.Sections select new { id = s.ID, cell = new string[] { SqlFunctions.StringConvert((double)s.ID).Trim(), s.RouteName, s.Title } .OrderBy(x => sidx) .Skip(page * rows) .Take(rows) }).ToArray() }; return Json(SectionData, JsonRequestBehavior.AllowGet); } catch (Exception ex) { ErrorSignal.FromCurrentContext().Raise(ex); return Json(null, JsonRequestBehavior.AllowGet); } } ```

Original source