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
- lambda表达式更新数据库
- lambda表达式案例(持续更新)
- Lambda Expressions(Lambda表达式)
- Lambda表达式
- Lambda表达式
- Lambda 表达式
- Lambda表达式
- lambda表达式
- lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda 表达式
- Lambda表达式
- Lambda 表达式
- Lambda 表达式
- Lambda表达式
- c#lambda表达式复习
- 记忆化搜索专题--nkoj3748玩具取名
- 10007--- 项目协调员(Coordinator)与联络员(Expediter)的区别
- Android Volley完全解析(一),初识Volley的基本用法
- Swift-->NSUserDefaults键值对,Android中的SharedPreferences
- lambda表达式更新数据库
- c#事件复习
- Swing超基础学习总结——5、菜单(JMenu、JMenuBar、JMenuItem)
- css属性之边框属性
- 【剑指offer】面试题6:重建二叉树
- C++ hdoj 2040
- com.sun.proxy.$Proxy25 cannot be cast to com.levi.service.impl.ProductServiceImpl和proxy-target-class
- Sklearn 用户手册 一:机器学习初体验
- IPC之Posix信号量详解