# EFCore Extend Bulk Exec **Repository Path**: magey/EFCoreExtend ## Basic Information - **Project Name**: EFCore Extend Bulk Exec - **Description**: 扩展Entity Framework,支持批量操作。批量删除批量修改批量插入 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 22 - **Forks**: 6 - **Created**: 2019-04-18 - **Last Updated**: 2023-08-11 ## Categories & Tags **Categories**: database-dev **Tags**: None ## README ## 2.0 更新计划 - 修复已知bug - 增强稳定性 - 新增存储过程支持 # EFCore Extend Bulk Exec [博客地址](https://microsoft.itool.store/share/details/48?view=151) - .Net Core - Core.Framework.EntityExtend - .Net Framework - Net.Framework.EntityExtend #### 介绍 - 扩展EfCore,支持批量操作 - 查询缓存 (MemoryCache) - 批量删除 - 批量修改 - 批量插入 - 手工解析 Expression 效率高 - 使用过程遇到问题请留言,谢谢 #### 安装教程 - 下载引入项目 拆包即用 - 注意EFCore版本一致[根据项目自行切换] #### 使用说明 ```C# // 查询缓存 20s // default 10s // (Where|Skip|Take) 条件不同 缓存位置不同 // 可选参数 // iCache 自定义 扩展缓存实例 redis sql... // refresh 是否强制刷新数据 // sliding 是否滑动过期 如果在过期时间内有操作,则以当前时间点延长过期时间 // timeSpan 数据缓存时间 // out cache 查询数据是否使用缓存 // 使用缓存的数据默认取消EF的数据追踪 var model = context.ProjectModuleUser .UseCache(TimeSpan.FromSeconds(20), iCache: new MemoryCacheService(), refresh:true, sliding:true) .Where(a => a.id == 1) .ToList(out bool cache); // 删除指定条件的数据 context.ProjectModuleUser.Delete(a => a.Id > 2); // 批量修改 context.ProjectModuleUser .BulkUpdate(new ProjectModuleUser{ BaiduOpenid = "BaiduOpenid" }) .Where(a => a.Id == 2); // List to Table // 批量插入 Table 1 context.ProjectModuleUser.BulkInsert(list); // 批量插入 Table 2 context.ProjectUserGroup.BulkInsert(list2); // 任务提交 // transaction 是否启用 "事物" default true var rows = context.BeginSaveChanges(); var rows = context.BeginSaveChanges(out string error); var rows = context.BeginSaveChanges(out string error , transaction: false); // 受影响行数 Console.WriteLine(rows); // 错误信息 Console.WriteLine(error); ``` #### 参与贡献 - linq 解析参考 (CSDN作者:道法自然 [地址](https://blog.csdn.net/xftyyyyb/article/details/40144787))