在使用 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多余代码就好了。

最新文章

  1. 实现从Oracle增量同步数据到GreenPlum
  2. [C#6] 7-索引初始化器
  3. WINDOW.PARENT.CKEDITOR.TOOLS.CALLFUNCTION 图片上传
  4. 为iPhone6设计自适应布局
  5. O-C相关-07-@property关键字简介与使用
  6. mac管理员密码破解
  7. HUNNU--湖师大--11407--It Is Cold
  8. jquery常用见的正则表达式
  9. Htttp协议
  10. rabbitMQ教程(三) spring整合rabbitMQ代码实例
  11. IDEA设置生成类基本注释信息
  12. How Microservices are Transforming Python Development
  13. 同顶级域名下 通过Cookie 跨域实现单点登陆
  14. 放球游戏B
  15. C# 爬虫----Cookies处理(Set-Cookie)
  16. 外网win10 64位环境下 为内网win7 32位安装三方包的最靠谱手段:python64位、32位全安装。
  17. 【转】WPS word 文档中的插入对象 为什么打不开
  18. CentOS7 安装配置rsync
  19. Android studio ButterKnife插件
  20. 解决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

热门文章

  1. JavaScript 对数据处理的5个API
  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-WebApi与Unity注入
  3. node模块加载层级优化
  4. js callee,caller学习
  5. 浅谈JSP注释
  6. java中易错点(一)
  7. es6小白学习笔记(一)
  8. Cesium简介以及离线部署运行
  9. asp.net core 实战之 redis 负载均衡和&quot;高可用&quot;实现
  10. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager