BaseController(Dapper)

复制代码
public class BaseController<T> : Controller where T : class, new()
    {

        BaseDal<T> baseDal = new BaseDal<T>();


        #region 通用基础方法

        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult Insert(T t)
        {

            int res = baseDal.Insert(t);


            return Content(res.ToString());

        }


        /// <summary>
        /// 批量新增
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public virtual ActionResult InsertBatch(List<T> list)
        {

            bool res = baseDal.InsertBatch(list);


            return Content(res.ToString());

        }


        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult Update(T t)
        {

            bool res = baseDal.Update(t);


            return Content(res.ToString());

        }


        /// <summary>
        /// 更新非空字段\部分字段  默认第一个字段为更新主键
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult UpdateNotNull(T t)
        {

            bool res = baseDal.UpdateNotNull(t);


            return Content(res.ToString());

        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult Delete(T t)
        {

            bool res = baseDal.Delete(t);


            return Content(res.ToString());

        }

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public virtual ActionResult DeleteBatch(List<T> list)
        {

            bool res = baseDal.DeleteBatch(list);


            return Content(res.ToString());

        }


        /// <summary>
        /// 查询一个实体
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public virtual ActionResult Get(string id)
        {

            T res = baseDal.Get(id);

            return Json(res, JsonRequestBehavior.AllowGet);

        }

        /// <summary>
        /// 查询全部
        /// </summary>
        /// <returns></returns>
        public virtual ActionResult GetListAll()
        {

            List<T> res = baseDal.GetListAll();

            return Json(res, JsonRequestBehavior.AllowGet);

        }

        #endregion


        #region 示例方法 需重写

        /// <summary>
        /// 获取分页数据
        /// Dapper扩展分页
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <param name="Id"></param>
        /// <returns></returns>
        public virtual ActionResult GetPage(int page, int limit, string Id)
        {

            long allRowsCount = 0;

            List<T> list = baseDal.GetPage(page, limit, out allRowsCount);

            LayUIDataResult<T> layUIDataResult = new LayUIDataResult<T>()
            {
                code = 0,
                count = allRowsCount,
                msg = "",
                data = list
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }


        /// <summary>
        /// SQL分页示例
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <param name="Id"></param>
        /// <returns></returns>
        public virtual ActionResult GetPageListForSQL(int page, int limit, string Id)
        {

            JObject jObject = new JObject();


            PageDataView<T> res = baseDal.GetPageListForSQL(jObject);

            LayUIDataResult<T> layUIDataResult = new LayUIDataResult<T>()
            {
                code = 0,
                count = res.TotalNum,
                msg = "",
                data = res.Items.ToList()
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }


        /// <summary>
        /// SQL分页示例  主要用于  MVC控制器 Layui
        /// </summary>
        /// <param name="collection"></param>
        /// <returns></returns>
        [HttpPost]
        public virtual ActionResult GetPageListForSQL(FormCollection collection)
        {

            T t = new T();

            TryUpdateModel<T>(t, collection);
            int page = Convert.ToInt32(collection["page"]);
            int limit = Convert.ToInt32(collection["limit"]);


            PageDataView<T> res = baseDal.GetPageListForSQL(page, limit, t);



            LayUIDataResult<T> layUIDataResult = new LayUIDataResult<T>()
            {
                code = 0,
                count = res.TotalNum,
                msg = "",
                data = res.Items.ToList()
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }




        #endregion


    }
复制代码

 

posted @   妖狐鬼魅  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示