lambda表达式更新数据库

来源:互联网 发布:c 不定长度数组 编辑:程序博客网 时间:2024/06/07 03:31

前言


在Itoo中,遇到了要用lambda表达式来更新数据的需求,之前接触过用lambda表达式查询的代码,但是更新还是第一次遇到,在大神的帮助下,又学到一点。

lambda表达式更新数据

 ta_userrole t_UserRole = new ta_userrole();//定义要更新的那张表 t_UserRole.IsDeleted = "Y";//要更新的字段 this.DbSession.TA_UserRoleDal.Update(t_UserRole,u => u.UserId.ToString () == userid && u.IsDeleted == "N","IsDeleted");//(表名,条件,要更新的字段)


需要先确定要更新哪张表和那个字段,然后再lambda表达式中写上表名,条件,要更新的字段。

补充


下面是往userrole这张表中添加数据的方法的代码:

/// 保存用户的角色,将用户ID和角色ID进行绑定,将绑定关系存入用户角色表。 操作时先将用户已有的角色进行删除,然后重新绑定的的角色        /// </summary>        /// <param name="listUser"></param>        /// <param name="listRole"></param>        public void AddUserRole(List<UserViewModel> listUser, List<RoleViewModel> listRole)        {            //try            //{                //遍历所有用户                foreach (var user in listUser)                {                    var userid = user.UserId.ToString();//把GUID转成字符串                    //将数据库UserRole表中该用户的数据删除                    //this.DbSession.TA_UserRoleDal.DelBy(n => n.UserId == userid);                    //this.DbSession.SaveChanges();                    //this.DbSession.TA_UserRoleDal.Update(a => a.UserId == userid && a.IsDeleted == 'N');                    //如果ta_userrole表中存在该用户的角色,把该记录的isdeleted改成Y                    ta_userrole t_UserRole = new ta_userrole();//定义要更新的那张表                    t_UserRole.IsDeleted = "Y";//要更新的字段                    this.DbSession.TA_UserRoleDal.Update(t_UserRole,u => u.UserId.ToString () == userid && u.IsDeleted == "N","IsDeleted");//(表名,条件,要更新的字段)                    //遍历所有角色                    foreach (var role in listRole)                    {                        //得到一个新的UserRole底层实体                        ta_userrole enUserRole = new ta_userrole();                        Guid userRoleId = Guid.NewGuid();                        enUserRole.UserRoleId = userRoleId.ToString();                        enUserRole.UserId = user.UserId.ToString();                        //enUserRole.UserId = "3e23005c-6940-43c0-b264-fa2401bf079b";                        enUserRole.RoleId = role.RoleId.ToString();                        //enUserRole.RoleId = "c972a533-f369-439a-a46f-dc835025c65d";                        enUserRole.TimeSpan = DateTime.Now;                        enUserRole.IsDeleted = "N";                        //将这条数据保存到数据库中                        this.DbSession.TA_UserRoleDal.Add(enUserRole);                    }                }                this.DbSession.SaveChanges();            //}            //catch (Exception)            //{            //    throw;            //}        }


解释:
该方法是实现对多个用户批量分配角色的功能。用了两个嵌套循环遍历每个用户的每个角色。其中用到了表和实体的映射。传过来的是两个list,把这两个list中字段的值直接赋给表的字段。之前代码用的是mapper,因为出错并没有深究,然后就才用了把list属性直接赋给表字段的方法来实现这个功能。

总结


在itoo中接触了一些新的东西,知道的越多感觉不会的越多;感觉有好多都不会,效率还是不高,有待提高。

0 0
原创粉丝点击