mvc-百步飞剑-03

说明:第二节的源码压缩包已经上传至https://pan.baidu.com/s/1dFnB3NV中的02文件夹下,本节以及以后章节所需要的内容和源码将会放置对应的目录下.

1 用户管理的完善

1.1 结合jquery-easyui的使用

  1.1.1  在BBFJ.OA.WebApp中的Content=>themes文件夹中添加百度云盘03中的themes文件中的内容

  1.1.1  在BBFJ.OA.WebApp中的Scripts文件夹中添加百度云盘03的JQuery-easyui文件中的内容

1.2 添加控制器,编写view.注意<script>中一些文件的引用 

@{
    Layout = null;
}

<!DOCTYPE html>

<html>

<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <link href="~/Content/themes/default/easyui.css" rel="stylesheet" />
    
    <link href="~/Content/themes/icon.css" rel="stylesheet" />
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script src="~/Scripts/jquery.easyui.min.js"></script>
    <script src="~/Scripts/easyui-lang-zh_CN.js"></script>
    <script src="~/Scripts/datapattern.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#addDiv").css("display", "none");
            $("#editDiv").css("display", "none");
            //给搜索按钮加一个单击事件
            $("#btnSearch").click(function () {
                //获取用户输入的搜索数据.
                var pars = {
                    name: $("#txtSearchName").val(),
                    remark: $("#txtSearchRemark").val()
                };
                //将获取的搜索的数据发送到服务端。
                loadData(pars)
            });
            loadData();
        });

        function loadData(pars) {
            $('#tt').datagrid({
                url: '/UserInfo/GetUserInfoList',
                title: '用户数据表格',
                width: 700,
                height: 400,
                fitColumns: true, //列自适应
                nowrap: false,
                idField: 'ID',//主键列的列明
                loadMsg: '正在加载用户的信息...',
                pagination: true,//是否有分页
                singleSelect: false,//是否单行选择
                pageSize: 5,//页大小,一页多少条数据
                pageNumber: 1,//当前页,默认的
                pageList: [5, 10, 15],
                queryParams: pars,//往后台传递参数
                columns: [[//c.UserName, c.UserPass, c.Email, c.RegTime
                    { field: 'ck', checkbox: true, align: 'left', width: 50 },
                    { field: 'ID', title: '编号', width: 80 },
                    { field: 'UName', title: '姓名', width: 120 },
                     { field: 'UPwd', title: '密码', width: 120 },
                      { field: 'Remark', title: '备注', width: 120 },
                    {
                        field: 'SubTime', title: '时间', width: 80, align: 'right',
                        formatter: function (value, row, index) {
                            return (eval(value.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"))).pattern("yyyy-M-d");
                        }
                    }
                ]],
                toolbar: [{
                    id: 'btnDelete',
                    text: '删除',
                    iconCls: 'icon-remove',
                    handler: function () {

                        deleteInfo();
                    }
                }, {
                    id: 'btnAdd',
                    text: '添加',
                    iconCls: 'icon-add',
                    handler: function () {

                        addInfo();
                    }
                }, {
                    id: 'btnEidt',
                    text: '编辑',
                    iconCls: 'icon-edit',
                    handler: function () {

                        showEditInfo();
                    }
                }],
            });
        }
        //删除数据
        function deleteInfo() {
            var rows = $('#tt').datagrid('getSelections');//获取所选择的行
            if (!rows || rows.length == 0) {
                //alert("请选择要修改的商品!");
                $.messager.alert("提醒", "请选择要删除的记录!", "error");
                return;
            }
            $.messager.confirm("提示", "确定要删除数据吗", function (r) {
                if (r) {
                    //获取要删除的记录的ID值。
                    var rowsLength = rows.length;
                    var strId = "";
                    for (var i = 0; i < rowsLength; i++) {
                        strId = strId + rows[i].ID + ",";//1,2,3,
                    }
                    //去掉最后一个逗号.
                    strId = strId.substr(0, strId.length - 1);
                    //将获取的要删除的记录的ID值发送到服务端.
                    $.post("/UserInfo/DeleteUserInfo", { "strId": strId }, function (data) {
                        if (data == "ok") {
                            $('#tt').datagrid('reload');//加载表格不会跳到第一页。
                            //清除上次操作的历史的记录。
                            $('#tt').datagrid('clearSelections')
                        } else {
                            $.messager.alert("提醒", "删除记录失败!", "error");
                        }
                    });
                }
            });

        }

        //添加数据
        function addInfo() {
            $("#addDiv").css("display", "block");
            $('#addDiv').dialog({
                title: '添加用户数据',
                width: 300,
                height: 200,
                collapsible: true,
                maximizable: true,
                resizable: true,
                modal: true,
                buttons: [{
                    text: 'Ok',
                    iconCls: 'icon-ok',
                    handler: function () {
                        //表单校验
                        validateInfo($("#addForm"));
                        $("#addForm").submit();//提交表单
                    }
                }, {
                    text: 'Cancel',
                    handler: function () {
                        $('#addDiv').dialog('close');
                    }
                }]
            });

        }
        //完成添加后调用该方法
        function afterAdd(data) {
            if (data == "ok") {
                $('#addDiv').dialog('close');
                $('#tt').datagrid('reload');//加载表格不会跳到第一页。
                $("#addForm input").val("");
            }
        }
        //表单校验
        function validateInfo(control) {
            control.validate({//表示对哪个form表单进行校验,获取form标签的id属性的值
                rules: {//表示验证规则
                    UName: "required",//表示对哪个表单元素进行校验,要写具体的表单元素的name属性的值
                    Remark: {
                        required: true
                    },
                    UPwd: {
                        required: true,
                        minlength: 5
                    },
                    Sort: {
                        required: true
                    }
                },
                messages: {
                    UName: "请输入用户名",
                    Remark: {
                        required: "请输入备注"
                    },
                    UPwd: {
                        required: "请输入密码",
                        minlength: jQuery.format("密码不能小于{0}个字 符")
                    },
                    Sort: {
                        required: "请输入排序"
                    }
                }
            });
        }
        //展示一下要修改的数据.
        function showEditInfo() {
            //判断一下用户是否选择了要修改的数据
            var rows = $('#tt').datagrid('getSelections');//获取所选择的行
            if (rows.length != 1) {
                $.messager.alert("提示", "请选择要修改的数据", "error");
                return;
            }
            //将要修改的数据查询出来,显示到文本框中。
            var id = rows[0].ID;
            $.post("/UserInfo/ShowEditInfo", { "id": id }, function (data) {
                $("#txtUName").val(data.UName);
                $("#txtUPwd").val(data.UPwd);
                $("#txtRemark").val(data.Remark);
                $("#txtSort").val(data.Sort);
                $("#txtSubTime").val(ChangeDateFormat(data.SubTime));
                $("#txtDelFlag").val(data.DelFlag);
                $("#txtId").val(data.ID);
            });
            $("#editDiv").css("display", "block");
            $('#editDiv').dialog({
                title: '编辑用户数据',
                width: 300,
                height: 200,
                collapsible: true,
                maximizable: true,
                resizable: true,
                modal: true,
                buttons: [{
                    text: 'Ok',
                    iconCls: 'icon-ok',
                    handler: function () {
                        //表单校验
                        validateInfo($("#editForm"));
                        $("#editForm").submit();//提交表单
                    }
                }, {
                    text: 'Cancel',
                    handler: function () {
                        $('#editDiv').dialog('close');
                    }
                }]
            });
        }
        //更新以后调用该方法.
        function afterEdit(data) {
            if (data == "ok") {
                $('#editDiv').dialog('close');
                $('#tt').datagrid('reload');//加载表格不会跳到第一页。
            } else {
                $.messager.alert("提示", "修改的数据失败", "error");
            }
        }
        //将序列化成json格式后日期(毫秒数)转成日期格式
        function ChangeDateFormat(cellval) {
            var date = new Date(parseInt(cellval.replace("/Date(", "").replace(")/", ""), 10));
            var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
            var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
            return date.getFullYear() + "-" + month + "-" + currentDate;
        }
    </script>


</head>
<body>
    <div>
        用户名:<input type="text" id="txtSearchName" />&nbsp;&nbsp;备注<input type="text" id="txtSearchRemark" /><a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'" style="width:80px" id="btnSearch">Search</a>

        <table id="tt" style="width: 700px;" title="标题,可以使用代码进行初始化,也可以使用这种属性的方式" iconcls="icon-edit"></table>
    </div>
    <!--------------添加数据---------------------->
    <div id="addDiv">
        @using (Ajax.BeginForm("AddUserInfo", "UserInfo", new { }, new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterAdd" }, new { id = "addForm" }))
        {
            <table>
                <tr><td>用户名</td><td><input type="text" name="UName" /></td></tr>
                <tr><td>密码</td><td><input type="password" name="UPwd" /></td></tr>
                <tr><td>备注</td><td><input type="text" name="Remark" /></td></tr>
                <tr><td>排序</td><td><input type="text" name="Sort" /></td></tr>
            </table>
        }
    </div>

    <!--------------修改数据---------------------->
    <div id="editDiv">
        @using (Ajax.BeginForm("EditUserInfo", "UserInfo", new { }, new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterEdit" }, new { id = "editForm" }))
        {
            <input type="hidden" name="ID" id="txtId" />
            <input type="hidden" name="SubTime" id="txtSubTime" />
            <input type="hidden" name="DelFlag" id="txtDelFlag" />
            <table>
                <tr><td>用户名</td><td><input type="text" name="UName" id="txtUName" /></td></tr>
                <tr><td>密码</td><td><input type="text" name="UPwd" id="txtUPwd" /></td></tr>
                <tr><td>备注</td><td><input type="text" name="Remark" id="txtRemark" /></td></tr>
                <tr><td>排序</td><td><input type="text" name="Sort" id="txtSort" /></td></tr>
            </table>
        }
    </div>
</body>
</html>
viewport

 执行的顺序:通过路由=>Userinfo控制器=>index方法=>找到相应的视图返回给浏览器,

  浏览器拿到代码进行渲染=><script>中loadData(),再次发送新情求url:'/UserInfo/GetUserInfoList'

1.3 完善控制器=>分页显示数据

  1.3.1 在Model新建一个枚举类型文件夹EnumType,添加一个类用户判断删除标记  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BBFJ.OA.Model.EnumType
{
   public enum DeleteEnumType
    {
       //正常
       Normal=0,
       LogicDelete =1
    }
}
DeleteEnumType

  1.3.2 完善UserInfoController 控制器

using BBFJ.OA.Model;
using BBFJ.OA.Model.EnumType;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace BBFJ.OA.WebApp.Controllers
{
    public class UserInfoController : Controller
    {
        //
        // GET: /UserInfo/
        IBLL.IUserInfoService UserInfoService = new BLL.UserInfoService();
        public ActionResult Index(UserInfo userInfo)
        {
            return View();
        }


        #region 02获取列表数据
        public ActionResult GetUserInfoList()
        {
            int pageIndex = Request["page"] != null ? int.Parse(Request["page"]) : 1;
            int pageSize = Request["rows"] != null ? int.Parse(Request["rows"]) : 5;
            int totalCount;
            short delFlag = (short)DeleteEnumType.Normal;
           var userInfoList = UserInfoService.LoadPageEntities<int>(pageIndex, pageSize, out totalCount,c => c.DelFlag == delFlag,c=>c.ID,true );
            //将数据生成json返回表格
            //看表格中需要那些数据,就写那些数据
           var temp = from u in userInfoList
                      select new
                      {
                          ID = u.ID,
                          UName = u.UName,
                          UPwd = u.UPwd,
                          Remark = u.Remark,
                          SubTime = u.SubTime
                      };
            //返回总的记录数和数据
           return Json(new { rows = temp,total = totalCount});

        }
        #endregion


    }
}
UserInfoController

  1.3.3 显示数据

  

 1.4 批量删除

  当在控制器中想调用UserInfoService.DeleteEntity();时发现BLL层原有的方法不能满足批量删除的功能.所以我们要重新定义一个方法.注意先在IUserInfoService接口中定义.

using BBFJ.OA.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BBFJ.OA.IBLL
{
   public interface IUserInfoService : IBaseService<UserInfo>
    {
       bool DeleteEntities(List<int> list);
    }
}
IUserInfoService
using BBFJ.OA.IBLL;
using BBFJ.OA.IDAL;
using BBFJ.OA.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BBFJ.OA.BLL
{
   public class UserInfoService : BaseService<UserInfo>,IUserInfoService
    {
        public override void SetCurrentDal()
        {
           //子类拿到父类的CurrentDal属性
            //子类拿到父类的DBSession属性
            CurrentDal = this.CurrentDBSession.UserInfoDal;
        }
        #region 02批量删除
        public bool DeleteEntities(List<int> list)
        {
            //拿到父类的DBSession属性,拿到具体的数据操作类,调用查询方法
            var userInfoList = this.CurrentDBSession.UserInfoDal.LoadEntities(u=>list.Contains(u.ID));
            foreach (var userInfo in userInfoList)
            {
                this.CurrentDBSession.UserInfoDal.DeleteEntity(userInfo);
            }
            return this.CurrentDBSession.SaveChanges();
        }
        #endregion


        
    }
}
UserInfoService
using BBFJ.OA.Model;
using BBFJ.OA.Model.EnumType;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace BBFJ.OA.WebApp.Controllers
{
    public class UserInfoController : Controller
    {
        //
        // GET: /UserInfo/
        IBLL.IUserInfoService UserInfoService = new BLL.UserInfoService();
        public ActionResult Index(UserInfo userInfo)
        {
            return View();
        }


        #region 02获取列表数据
        public ActionResult GetUserInfoList()
        {
            int pageIndex = Request["page"] != null ? int.Parse(Request["page"]) : 1;
            int pageSize = Request["rows"] != null ? int.Parse(Request["rows"]) : 5;
            int totalCount;
            short delFlag = (short)DeleteEnumType.Normal;
           var userInfoList = UserInfoService.LoadPageEntities<int>(pageIndex, pageSize, out totalCount,c => c.DelFlag == delFlag,c=>c.ID,true );
            //将数据生成json返回表格
            //看表格中需要那些数据,就写那些数据
           var temp = from u in userInfoList
                      select new
                      {
                          ID = u.ID,
                          UName = u.UName,
                          UPwd = u.UPwd,
                          Remark = u.Remark,
                          SubTime = u.SubTime
                      };
            //返回总的记录数和数据
           return Json(new { rows = temp,total = totalCount});

        }
        #endregion
        
#region 02删除用户数据
        public ActionResult DeleteUserInfo()
        {
            string strId = Request["strId"];
            string[] strIds = strId.Split(',');
            List<int> list = new List<int>();
            foreach (string id in strIds)
            {
                list.Add(Convert.ToInt32(id));
            }
            //将list集合存储的要删掉记录编号传递到BLL层
            if (UserInfoService.DeleteEntities(list))
            {
                return Content("ok");
            }
            else 
            {
                return Content("no");            
            }
                
        }
        #endregion
    }
}
UserInfoController

 1.5 添加数据

using BBFJ.OA.Model;
using BBFJ.OA.Model.EnumType;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace BBFJ.OA.WebApp.Controllers
{
    public class UserInfoController : Controller
    {
        //
        // GET: /UserInfo/
        IBLL.IUserInfoService UserInfoService = new BLL.UserInfoService();
        public ActionResult Index(UserInfo userInfo)
        {
            return View();
        }


        #region 02获取列表数据
        public ActionResult GetUserInfoList()
        {
            int pageIndex = Request["page"] != null ? int.Parse(Request["page"]) : 1;
            int pageSize = Request["rows"] != null ? int.Parse(Request["rows"]) : 5;
            int totalCount;
            short delFlag = (short)DeleteEnumType.Normal;
           var userInfoList = UserInfoService.LoadPageEntities<int>(pageIndex, pageSize, out totalCount,c => c.DelFlag == delFlag,c=>c.ID,true );
            //将数据生成json返回表格
            //看表格中需要那些数据,就写那些数据
           var temp = from u in userInfoList
                      select new
                      {
                          ID = u.ID,
                          UName = u.UName,
                          UPwd = u.UPwd,
                          Remark = u.Remark,
                          SubTime = u.SubTime
                      };
            //返回总的记录数和数据
           return Json(new { rows = temp,total = totalCount});

        }
        #endregion
        
        #region 02删除用户数据
        public ActionResult DeleteUserInfo()
        {
            string strId = Request["strId"];
            string[] strIds = strId.Split(',');
            List<int> list = new List<int>();
            foreach (string id in strIds)
            {
                list.Add(Convert.ToInt32(id));
            }
            //将list集合存储的要删掉记录编号传递到BLL层
            if (UserInfoService.DeleteEntities(list))
            {
                return Content("ok");
            }
            else 
            {
                return Content("no");            
            }
                
        }
        #endregion

        #region 03添加用户数据
        public ActionResult AddUserInfo(UserInfo userInfo) 
        {
            userInfo.DelFlag =0;
            userInfo.ModifiedOn = DateTime.Now;
            userInfo.SubTime = DateTime.Now;
            UserInfoService.AddEntity(userInfo) ;
            return Content("ok"); 
        }
        #endregion
    }
}
UserInfoController

 1.6 更新数据

using BBFJ.OA.Model;
using BBFJ.OA.Model.EnumType;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace BBFJ.OA.WebApp.Controllers
{
    public class UserInfoController : Controller
    {
        //
        // GET: /UserInfo/
        IBLL.IUserInfoService UserInfoService = new BLL.UserInfoService();
        public ActionResult Index(UserInfo userInfo)
        {
            return View();
        }


        #region 02获取列表数据
        public ActionResult GetUserInfoList()
        {
            int pageIndex = Request["page"] != null ? int.Parse(Request["page"]) : 1;
            int pageSize = Request["rows"] != null ? int.Parse(Request["rows"]) : 5;
            int totalCount;
            short delFlag = (short)DeleteEnumType.Normal;
           var userInfoList = UserInfoService.LoadPageEntities<int>(pageIndex, pageSize, out totalCount,c => c.DelFlag == delFlag,c=>c.ID,true );
            //将数据生成json返回表格
            //看表格中需要那些数据,就写那些数据
           var temp = from u in userInfoList
                      select new
                      {
                          ID = u.ID,
                          UName = u.UName,
                          UPwd = u.UPwd,
                          Remark = u.Remark,
                          SubTime = u.SubTime
                      };
            //返回总的记录数和数据
           return Json(new { rows = temp,total = totalCount});

        }
        #endregion
        
        #region 02删除用户数据
        public ActionResult DeleteUserInfo()
        {
            string strId = Request["strId"];
            string[] strIds = strId.Split(',');
            List<int> list = new List<int>();
            foreach (string id in strIds)
            {
                list.Add(Convert.ToInt32(id));
            }
            //将list集合存储的要删掉记录编号传递到BLL层
            if (UserInfoService.DeleteEntities(list))
            {
                return Content("ok");
            }
            else 
            {
                return Content("no");            
            }
                
        }
        #endregion

        #region 03添加用户数据
        public ActionResult AddUserInfo(UserInfo userInfo) 
        {
            userInfo.DelFlag =0;
            userInfo.ModifiedOn = DateTime.Now;
            userInfo.SubTime = DateTime.Now;
            UserInfoService.AddEntity(userInfo) ;
            return Content("ok"); 
        }
        #endregion

        #region 04展示要修改数据
        public ActionResult ShowEditInfo() 
        {
            int id = int.Parse(Request["id"]);
            var userInfo = UserInfoService.LoadEntities(u=> u.ID == id).FirstOrDefault();
            return Json(userInfo,JsonRequestBehavior.AllowGet);
        }
        #endregion

        #region 05完成数据的更新
        public ActionResult EditUserInfo(UserInfo userinfo) 
        {
           
            userinfo.ModifiedOn = DateTime.Now;
            if (UserInfoService.EditEntity(userinfo))
            {
                return Content("ok");
            }
            else {
                return Content("no");
            }
        }
        #endregion
    }
}
UserInfoController

 1.7  检索数据

  通过index.cshtml中loadData方法中的queryParams向后台传递检索条件的参数

  1.7.1  在控制器中进行接收.此时把搜索条件的进一步封装在Model中.即在Model中添加Search文件夹,并在文件夹中添加UserInfoSearch类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BBFJ.OA.Model.Search
{
    public class UserInfoSearch
    {
        public string UserName { get; set; }
        public string UserRemark{ get; set; }
    }
}
UserInfoSearch

  1.7.2 搜索的结果肯定涉及到分页.那么就少不了pageIndex和pageSize等属性.所以还要创建基类BaseSearch,并让UserInfoSearch继承它.以后有别的检索条件也继承此类.这样就通过封装大大简化了代码.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BBFJ.OA.Model.Search
{
    public class BaseSearch
    {
        public int PageIndex { get; set; }
        public int PageSize { get; set; }
        public int TotalCount { get; set; }
    }
}
BaseSearch

  1.7.3  在业务层添加搜索方法LoadSearchEntities

using BBFJ.OA.IBLL;
using BBFJ.OA.IDAL;
using BBFJ.OA.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BBFJ.OA.BLL
{
   public class UserInfoService : BaseService<UserInfo>,IUserInfoService
    {
        public override void SetCurrentDal()
        {
           //子类拿到父类的CurrentDal属性
            //子类拿到父类的DBSession属性
            CurrentDal = this.CurrentDBSession.UserInfoDal;
        }
        #region 02批量删除
        public bool DeleteEntities(List<int> list)
        {
            //拿到父类的DBSession属性,拿到具体的数据操作类,调用查询方法
            var userInfoList = this.CurrentDBSession.UserInfoDal.LoadEntities(u=>list.Contains(u.ID));
            foreach (var userInfo in userInfoList)
            {
                this.CurrentDBSession.UserInfoDal.DeleteEntity(userInfo);
            }
            return this.CurrentDBSession.SaveChanges();
        }
        #endregion

        #region 03完成用户信息的搜索
        public IQueryable<UserInfo> LoadSearchEntities(Model.Search.UserInfoSearch userInfoSearch,short delFlag)
        {
            var temp = this.CurrentDBSession.UserInfoDal.LoadEntities(c=>c.DelFlag == delFlag );
            //根据用户名搜索
            if (!String.IsNullOrEmpty(userInfoSearch.UserName))
            {
                temp = temp.Where<UserInfo>(u=>u.UName.Contains(userInfoSearch.UserName));
            }
            if (!String.IsNullOrEmpty(userInfoSearch.UserRemark))
            {
                temp = temp.Where<UserInfo>(u => u.Remark.Contains(userInfoSearch.UserRemark));
            }
            userInfoSearch.TotalCount = temp.Count();
            return temp.OrderBy<UserInfo, int>(u => u.ID).Skip<UserInfo>((userInfoSearch.PageIndex - 1) * userInfoSearch.PageSize).Take<UserInfo>(userInfoSearch.PageSize);
        }
        #endregion
        
    }
}
UserInfoService

  1.7.4 在接口中也要有LoadSearchEntities该方法

using BBFJ.OA.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BBFJ.OA.IBLL
{
   public interface IUserInfoService : IBaseService<UserInfo>
    {
       bool DeleteEntities(List<int> list);
       IQueryable<UserInfo> LoadSearchEntities(Model.Search.UserInfoSearch userInfoSearch, short delFlag);
    }
}
IUserInfoService

补充代码修改,百度网盘中的代码略有缺陷需要修改

 

posted @ 2017-03-25 14:08  逍遥小天狼  阅读(151)  评论(0)    收藏  举报