EntityFramework.Extended 实现 update count+=1
2024-10-15 05:09:29
在使用 EF 的时候,EntityFramework.Extended 的作用:使IQueryable<T>
转换为update table set ...
,这样使我们在修改实体对象的时候,避免先查询再修改,而是直接 Update,大致写法:
IQueryable<Entity> entities = _entityRepository.GetAll();
entities = entities.Where(x => x.Id == 1);
await entities.UpdateAsync(x => new Entity { Count = 666 });
但有时候,我们还有一种操作,就是在实体属性值的基础上,进行加减操作,不要被上面的new Entity
吓到(误以为只能赋新值),其实用 EntityFramework.Extended 实现很简单,代码示例:
IQueryable<Entity> entities = _entityRepository.GetAll();
entities = entities.Where(x => x.Id == 1);
await entities.UpdateAsync(x => new Entity { Count = x.Count + 1 }); //在这里。
生成的 SQL 代码:
UPDATE [dbo].[Entity] SET
[Count] = [Count] + 1
FROM [dbo].[Entity] AS j0 INNER JOIN (
SELECT
[Extent1].[Id] AS [Id]
FROM [dbo].[Entity] AS [Extent1]
WHERE (1 = CAST( [Extent1].[Id] AS int)) AND (1 = [Extent1].[Id])
) AS j1 ON (j0.[Id] = j1.[Id])
稍微有点复杂,如果去掉INNER JOIN
多余代码就好了。
最新文章
- 实现从Oracle增量同步数据到GreenPlum
- [C#6] 7-索引初始化器
- WINDOW.PARENT.CKEDITOR.TOOLS.CALLFUNCTION 图片上传
- 为iPhone6设计自适应布局
- O-C相关-07-@property关键字简介与使用
- mac管理员密码破解
- HUNNU--湖师大--11407--It Is Cold
- jquery常用见的正则表达式
- Htttp协议
- rabbitMQ教程(三) spring整合rabbitMQ代码实例
- IDEA设置生成类基本注释信息
- How Microservices are Transforming Python Development
- 同顶级域名下 通过Cookie 跨域实现单点登陆
- 放球游戏B
- C# 爬虫----Cookies处理(Set-Cookie)
- 外网win10 64位环境下 为内网win7 32位安装三方包的最靠谱手段:python64位、32位全安装。
- 【转】WPS word 文档中的插入对象 为什么打不开
- CentOS7 安装配置rsync
- Android studio ButterKnife插件
- 解决java.sql.SQLException: The server time zone value &#39;&#214;&#208;&#185;&#250;&#177;&#234;&#215;&#188;&#202;&#177;&#188;&#228;&#39; is unrecognized or represents more than one time zone
热门文章
- JavaScript 对数据处理的5个API
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-WebApi与Unity注入
- node模块加载层级优化
- js callee,caller学习
- 浅谈JSP注释
- java中易错点(一)
- es6小白学习笔记(一)
- Cesium简介以及离线部署运行
- asp.net core 实战之 redis 负载均衡和";高可用";实现
- Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager