zoukankan      html  css  js  c++  java
  • Asp.Net MVC多表联合查询分页+多条件查询方法

     //代码不全,随意记录笔记

    public ActionResult GetListJson(int page, int limit,string title,int passed=-1, int good =-1,int classID=-1,string t1="",string t2="")
            {
                //list管理页面用?page=3&limit=15&title=ceshi
                var pageIndex = page;
                var pageSize = limit;
                var counts = 0;
                Expression<Func<News, bool>> whereLamdba = i => true;
                if (!string.IsNullOrEmpty(title))
                {
                    whereLamdba = whereLamdba.And(m => m.title.Contains(title));
                }
                if (passed>-1)
                {
                    whereLamdba = whereLamdba.And(m => m.passed == passed);
                }
                if (good > -1)
                {
                    whereLamdba = whereLamdba.And(m => m.good == good);
                }
                if (classID > -1)
                {
                    var listID = new NewsClassBLL().GetIDList(classID.ToString());
                    whereLamdba = whereLamdba.And(m => listID.Contains(m.classID));
                }
                if (!string.IsNullOrEmpty(t1))
                {
                    var date1 = ConvertHelper.ConvertToDateTime(t1, DateTime.Now);
                    whereLamdba = whereLamdba.And(m => m.timeShow>= date1);
                }
                if (!string.IsNullOrEmpty(t2))
                {
                    var date2 = ConvertHelper.ConvertToDateTime(t2 + " 23:59:59", DateTime.Now);
                    whereLamdba = whereLamdba.And(m => m.timeShow <= date2);
                }
    
                //多表查询分页有2种方法
            //如果返回值需要修改,则不能使用匿名类型,需要自定义一个ViewModel
    //方法1: var listClass = bllNewsClass.FindList(); var list = bll.FindPageList(pageIndex, pageSize, out counts, whereLamdba, false, x => x.ID) .Join(listClass,n=>n.classID,c=>c.ID, (n, c) => new { n.ID,n.title,cname =c.name}).ToList(); //方法2: /*var sql = from n in bll.FindList().Where(whereLamdba) join c in bllNewsClass.FindList() on n.classID equals c.ID select new { n.ID, n.title, cname = c.name }; var list = sql.OrderByDescending(m => m.ID).ToPagedList(pageIndex, pageSize); counts = list.TotalItemCount;*/ ResultModel res = new ResultModel(); res.code = 0; res.data = list; res.count = counts; return Json(res, JsonRequestBehavior.AllowGet); }

    //成功一定有方法,失败一定有原因。
  • 相关阅读:
    第二次冲刺spring会议(第一次会议)
    团队项目(4.15站立会议)
    团队项目(4.14站立会议)
    VB中的GDI编程-1 设备环境DC
    合并多个表格数据的代码
    随机跳转页面之使用VBA公共变量
    快速找到Office应用程序安装路径
    CSS3学习笔记(3)-CSS3边框
    CSS3学习笔记(2)-CSS盒子模型
    测试一下js是否可用
  • 原文地址:https://www.cnblogs.com/webapi/p/15267515.html
Copyright © 2011-2022 走看看