c# linq update单个字段
1.更新单个字段
/// <summary>
/// 更新字段
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="conditions">where 筛选对象</param>
/// <param name="updateLamda">更新字段</param>
/// <returns></returns>
public IEnumerable<T> Update<T>( Expression<Func<T, bool>> conditions,Func<T, dynamic> updateLamda) where T : ModelBase
{
List<T> setList;
if (conditions!=null)
{
setList= this.Set<T>().Where(conditions).ToList();
}
else
{
setList = this.Set<T>().ToList();
}
foreach (var item in setList)
{
SetValue<T>(item, updateLamda);
this.Entry<T>(item).State = EntityState.Modified;
}
this.SaveChanges();
return setList;
} public dynamic SetValue<T>(T entity, Func<T, dynamic> expr)
{
return expr(entity);
}
更新单个字段
action中的使用:
public ActionResult Edit()
{
using (ActivityDbContext dbContext = new ActivityDbContext())
{
dbContext.Update<Order>(u => u.ID==1,u =>u.UserName= u.OrderNumber.Replace("1", "xx"));
//第一个lambda表达式是用来筛选的,第二个则是进行替换的,在方法编写里面,用了dynamic动态对象,因为没办法确定改了哪个属性,只不过暂时只能改一个,改多个还不会(-_-)
} return View();
}
2.lambda修改对象的属性
public dynamic SetValue<T>(T entity, Func<T, dynamic> expr)
{
return expr(entity);
}
添加对象自身方法
public static class UpdateObject
{
public static dynamic SetValue2<T>(this T obj, Func<T, dynamic> expr)
{
return expr(obj);
}
public static dynamic SetValue2<T>(this T obj, List<Func<T, dynamic>> expr)
{
foreach (var item in expr)
{
item(obj);
}
return obj;
} }
class Program
{
static void Main(string[] args)
{ #region 修改对象属性方法
GetProperty p = new GetProperty() { Name1 = "" };
//SetValue<GetProperty>(p, u => u.Name1 = "2");
Console.WriteLine(p.Name1);
//p.SetValue2<GetProperty>(u => u.Name2 = u.Name2 + 1 + 2);
p.SetValue2<GetProperty>(new List<Func<GetProperty, dynamic>>() { new Func<GetProperty, dynamic>(u => u.Name2 = u.Name2 + ), new Func<GetProperty, dynamic>(u => u.Name3 = u.Name3 + ) });
Console.WriteLine(p.Name2);
Console.WriteLine(p.Name3);
#endregion
Console.ReadKey();
} public static string GetPropertyName<T>(Expression<Func<T,string>> expr)
{
var name = ((MemberExpression)expr.Body).Member.Name;
return name;
} public static dynamic SetValue<T>(T entity, Func<T, dynamic> expr)
{
return expr(entity);
} public static dynamic SetValue<T>(T entity,List< Func<T, dynamic>> expr)
{
foreach (var item in expr)
{
item(entity);
}
return entity;
} } public static class UpdateObject
{
public static dynamic SetValue2<T>(this T obj, Func<T, dynamic> expr)
{
return expr(obj);
}
public static dynamic SetValue2<T>(this T obj, List<Func<T, dynamic>> expr)
{
foreach (var item in expr)
{
item(obj);
}
return obj;
} } public class GetProperty{
public string Name1 { get; set; }
public string Name2 { get; set; }
public string Name3 { get; set; }
}
控制台-修改对象属性
c# linq update单个字段的更多相关文章
- ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql
转: ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql 本文为博主原创,转载请注明出处. 在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时 ...
- [转]Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
原文地址:http://www.ablanxue.com/prone_3552_1.html 1. 查询整个映射对象所有字段 Java代码 //直接from查询出来的是一个映射对象,即:查询整个映射对 ...
- JPA查询单个字段和多个字段返回类型总结
原文地址:https://blog.csdn.net/weixin_40326509/article/details/80865646 在使用springboot中,需要使用JPQL和SQL去查询记录 ...
- $(formName).data(“bootstrapValidator”).getFieldElements('fieldName'); 校验单个字段
问题也出自于业务系统后台,应该来说也比较常见吧 房产类型分为一抵和二抵,二抵的时候用户必须填写一抵债权金额,一抵的时候则不显示一抵债权金额也不校验,因为我所有的校验都是写在标签上,哪些必填直接写在标签 ...
- JDK8:Lambda根据 单个字段、多个字段,分组求和
使用lambda表达式分别 根据 单个字段.多个字段,分组求和 示意图: 1.根据 单个字段,分组求和:根据2019这个字段,计算一个list集合里,同属于2019的某个字段累加和 2.根据 多个字段 ...
- linq中给字段添加别名
linq 是我们在查询中经常回用到的一种形式,比如我们创建一个类,然后List<添加> 并绑定到表格中 public class Modeltest { string id; public ...
- 【Oracle】【8】大批量update某个字段
正文: 需实现:将A表的某个字段的值复制到B表中 我们一般会这样写:UPDATE B SET B.NAME = (SELECT A.NAME FROM A WHERE A.NO = B.NO) 出现的 ...
- update condition 字段报错
mysql> update tf_user_present set condition="0" where id=1;ERROR 1064 (42000): You have ...
- 【spring data jpa】spring data jpa 中的update 更新字段,如果原字段值为null不处理,不为null则在原来的值上加一段字符串
示例代码: /** * 如果barCode字段值为null则不处理 * 如果barCode字段值不为null则在原本值的前面拼接 del: * @param dealer * @return */ @ ...
随机推荐
- (笔记)Linux下的静态库和动态库使用详解
库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 一.静态库和动态库的区别 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比 ...
- Android notifyDataSetChanged
notifyDataSetChanged()用于动态的更新ListView中的数据.最后还是会调用Adapter中的getView函数. notifyDataSetChanged()相比于setAda ...
- Maven项目文档
本教程学习如何一步到位地创建应用程序的文档.因此现在开始我们进入到 C:\MVN 创建 java 应用程序项目:consumerBanking. 进入到项目文件夹中执行以下命令 mvn 命令. C: ...
- e812. 强制弹出菜单为重组件
By default, Swing popup menus used by JMenu and JPopupMenu are lightweight. If heavyweight component ...
- 一个类似于postman的协议测试工具
协议测试工具使用postman相当便捷,不过有一个问题,就是每个人都要装一个这个东西,并且测试文件导来导去,还是觉得麻烦了点. 最重要的是postman不能修改,有一些定制功能postman明显力不从 ...
- c#中//注释和///注释的区别 智能注释 显示换行
///会被编译,//不会所以使用///会减慢编译的速度(但不会影响执行速度)///会在其它的人调用你的代码时提供智能感知 也是一种注释,但是这种注释主要有两种作用:1.这些注释能够生成一个XML文件. ...
- 安装PHP5 PHP7
安装 PHP5 PHP官网www.php.net • 当前主流版本为5./7.1 • cd /usr/local/src/ • wget http://cn2.php.net/distribution ...
- Javascript实例教程:querySelector()方法接受一个CSS查询并返回匹配模式的第一个子孙元素,如果没有匹配的元素则返回null。
文章简介:querySelector()方法接受一个CSS查询并返回匹配模式的第一个子孙元素,如果没有匹配的元素则返回null. querySelector()方法接受一个CSS查询并返回匹配模式的第 ...
- IE中自定义标签使用自封闭格式引发错误!
最近学习IONIC,其中用到了ion-menu-nav-button,由于标签开始和结尾之间没有内容,所以图省事儿使用自封闭标签的写法: <ion-menu-nav-button class=& ...
- Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...