网站首页 > 知识剖析 正文
最近在学习Linq to Sql,于是自己做了一个例子。但是,当用到Linq to Sql来更新数据的时候,我傻眼了。
wwsDataContext db = new wwsDataContext; Tb_UserInfor userinfor= db.Tb_UserInfor.First(u => u.ID == 1); userinfor.UserName= "Zhang Li"; db.submitchanges;
网上一搜索,全是这样的。那我就想了,要是一个表有几十个字段,那不是要写死人???于是乎我就开始想这个各种办法偷懒:
wwsDataContext db = new wwsDataContext; db.Tb_UserInfor.attach(model); db.submitchanges;
结果报错,不能用。然后看到说attach(entity)方法默认调用attach(entity, false),要使用attach(entity, true),于是改了,但可惜,还是报错。然后我就想,不就是先查询出相应的实体类,然后给各个属性赋值嘛。那我能不能遍历属性呢?
百度一下,在csdn论坛上看到有大神给出了这个代码:
PropertyInfo pis = typeof(类名).GetProperties; foreach (PropertyInfo pi in pis) { var value1 = pi.GetValue(对象名, null);//得到属性的值 var attr=pi.Name.ToString//得到属性的名称 }
然后,结合我现有情况,造就了下面的代码:
Tb_UserInfor sql = db.Tb_UserInfor.First(u => u.ID == model.ID); //获取该类型所有属性 PropertyInfo pis = typeof(Tb_UserInfor).GetProperties; //依照属性集合,遍历实体类的值,并赋值给dataContext实例 foreach (PropertyInfo pi in pis) { var value = pi.GetValue(model, null);//得到属性的值 pi.SetValue(sql, value, null);//给dataContext中的实例赋值 } db.SubmitChanges;
测试,发现修改成功。这下再也不用写一大堆属性赋值了,不然真的会要人命啊!!!
猜你喜欢
- 2025-08-31 8 种最坑的 SQL 错误用法,你有没有踩过坑?
- 2025-08-31 Win11/10 ODBC SQL Server驱动程序Bug导致应用问题,微软缓解
- 2025-08-31 SQL server 速度优化常规方法_sqlserver性能调优实践
- 2025-08-31 176.C# SqlSugar 更新数据_用sql中的数据更新命令
- 2025-08-31 SpringBoot之数据访问——访问SQL数据库!
- 2025-08-31 SQL Server如何使用维护计划?_为什么我的sql server数据库的维护计划不能使用
- 2025-08-31 SQL优化,怎么做?_sql如何进行优化
- 最近发表
-
- postgresql自定义函数实现,通过contrib模块进行扩展
- PostgreSQL "+"操作符函数的获取机制
- VBA中SQLOpen函数_vba调用sql获取数据
- VBA中SQLExecQuery函数_vba操作sql数据库
- 第 10 章:聚合函数与分组 - PostgreSQL入门
- SQL面试经典问题-开窗函数_sql开窗函数详解
- 技术栈:我们把SQL窗口函数分为5大类12小类,这样好记吗?
- 第 15 章:窗口函数 (Window Functions) - PostgreSQL入门
- SQL常用经典函数大全_sql函数有哪些
- SQL窗口函数知多少?_sql窗口函数有哪些
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)