C# 带take和skip的LINQ连接
我正在尝试使用ASP MVC和jquery datatables API生成员工DTR 这是我的控制器代码: 看法 @Html.DropDownListPeriodID,选择。。。 @Html.DropDownListSelectedEmpID,选择。。。 埃皮德 LastNm 洛格特 登录 注销 职级 转移 埃皮德 LastNm 洛格特 登录 注销 职级 转移 @节脚本{ 函数重新初始化DataTable{ $'datatable'。datatable{ 观察家方面:是的, sAjaxSource:'@Url.ActionajaxHandler,datatablesDTR', b处理:对, bDestroy:true,//为避免重新初始化时出错 AO列:[ {sName:EmpID}, {sName:LastNm}, {sName:LogDT}, {sName:LogIn}, {sName:LogOut}, {sName:JobGradeDesc}, {sName:ShftNm} ], //推送发送附加参数数据:d fnServerParams:函数aoData{ aoData.push {name:CustomParam_PeriodID,值:$'PeriodID'.val}, {name:CustomParam_EmpID,值:$'SelectedEmpID'.val} ; }, }; } $document.readyfunction{ //在下拉列表中添加所有选项 $.valall.textall之前的$SelectedEmpID option.eq1; //周期ID更改事件 $function{ $PeriodID.changefunction{ 如果$'SelectedEmpID'.val{ 重新初始化数据表; }否则{ $'SelectedEmpID'.prop'disabled',!$'PeriodID'.val; } }; }; $function{ $SelectedEmpID.changefunction{ 重新初始化数据表; }; }; }C# 带take和skip的LINQ连接,c#,jquery,asp.net,linq,C#,Jquery,Asp.net,Linq,我正在尝试使用ASP MVC和jquery datatables API生成员工DTR 这是我的控制器代码: 看法 @Html.DropDownListPeriodID,选择。。。 @Html.DropDownListSelectedEmpID,选择。。。 埃皮德 LastNm 洛格特 登录 注销 职级 转移 埃皮德 LastNm 洛格特 登录 注销 职级 转移 @节脚本{ 函数重新初始化DataTable{ $'datatable'。datatable{ 观察家方面:是的, sAjaxSou
}您好,可能是因为此异常而发布堆栈跟踪。@SelvaTS收到的错误如下:方法“Skip”仅支持LINQ to实体中的排序输入。方法“OrderBy”必须在方法“Skip”之前调用,问题已解决!我加了一句。在跳过和拿走之前,按医嘱。
public ActionResult ajaxHandler(jQueryDataTableParamModel param)
{
var PeriodDates = db.tTAPeriods.Single(x => x.PeriodID == param.CustomParam_PeriodID);
IEnumerable<DatatablesViewModel> viewmodel = (from a in db.tHREmployees
join b in db.tTADTRs on a.EmpID equals b.EmpID
join c in db.tHRJobGrades on a.JobGrdID equals c.JobGrdID
join d in db.tTAShifts on b.ShftID equals d.ShftID
where (b.LogDt >= PeriodDates.FromDt && b.LogDt <= PeriodDates.ToDt)
select new DatatablesViewModel {
EmpID = a.EmpID,
LastNm = a.LastNm,
LogDT = b.LogDt,
LogIn = b.LogIn,
LogOut = b.LogOut,
JobGradeDesc = c.JobGrdDesc,
ShftNm = d.ShftNm
});
//IF USER SELECTED ALL
if (param.CustomParam_EmpID != "all")
{
viewmodel = viewmodel.Where(x => x.EmpID == param.CustomParam_EmpID);
}
//SELECT PAGE FILDTER
var rslt = from x in viewmodel.Skip(param.iDisplayStart).Take(param.iDisplayLength)
select new string[] {
x.EmpID,x.LastNm,
x.LogDT.ToShortDateString(),
x.LogIn.ToString(),
x.LogOut.ToString(),
x.JobGradeDesc,x.ShftNm
};
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = viewmodel.Count(),
iTotalDisplayRecords = viewmodel.Count(),
aaData = rslt.ToArray()
},
JsonRequestBehavior.AllowGet);
}