lambda表达式更新数据库

原创 2016年08月28日 20:20:47

前言


在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中接触了一些新的东西,知道的越多感觉不会的越多;感觉有好多都不会,效率还是不高,有待提高。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数量...
  • wangboxian
  • wangboxian
  • 2014年12月23日 14:17
  • 80050

动态创建Lambda表达式实现高级查询

需求简介    最近这几天做的东西总算是回归咱的老本行了,给投资管理项目做一个台账的东西,就是类似我们的报表。其 中有一个功能是一个高级查询的需求,在查询条件方面大概有7、8个查询条件。需求就...
  • u013045437
  • u013045437
  • 2016年05月14日 09:43
  • 10297

C# Lambda表达式和查询表达式

  • 2014年12月17日 11:31
  • 240KB
  • 下载

Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数...
  • wisgood
  • wisgood
  • 2016年06月01日 22:20
  • 1321

Lambda表达式详细总结

(一)输入参数 在Lambda表达式中,输入参数是Lambda运算符的左边部分。它包含参数的数量可以为0、1或者多个。只有当输入参数为1时,Lambda表达式左边的一对小括弧才可以省略。输入参数的数...
  • mss359681091
  • mss359681091
  • 2016年09月13日 11:12
  • 1533

lambda 表达式拼接

lambda 表达式拼接扩展方法
  • zhifeiya
  • zhifeiya
  • 2017年03月30日 16:11
  • 1026

java8 Lambda表达式的学习与测试

java lambda表达式
  • BabyGoodMorning
  • BabyGoodMorning
  • 2016年09月14日 00:31
  • 812

关于OC中的Block,Swift中的闭包,C++11中的lambda表达式等匿名函数详解

Hello,大家好啊!逗比老师又来给大家逗比啦!今天咱们逗比的内容,就来围绕一个比较棘手的问题——匿名函数。我有一个朋友在学习做iOS开发,他最近就在被这个Block缠绕弥漫,感觉云里雾里,所以希望我...
  • fl2011sx
  • fl2011sx
  • 2016年03月28日 13:25
  • 720

为什么lambda表达式要用final

转自:http://unmi.cc/java-8-lambda-capture-outer-variables/ 可能会把捕获外部变量的 Lambda 表达式称为闭包,那么 Java 8 的 L...
  • lwwgtm
  • lwwgtm
  • 2017年03月05日 21:53
  • 1841

JavaScript 箭头函数(Lambda表达式)

简介JavaScript 中,函数可以用箭头语法(”=>”)定义,有时候也叫“lambda表达式”。这种语法主要意图是定义轻量级的内联回调函数。例如:// Arrow function: [5, 8,...
  • cuit
  • cuit
  • 2016年11月17日 15:09
  • 11819
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lambda表达式更新数据库
举报原因:
原因补充:

(最多只允许输入30个字)