2 Star 22 Fork 6

user_1411900 / EFCore Extend Bulk Exec

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.17 KB
一键复制 编辑 原始数据 按行查看 历史
user_1411900 提交于 2020-04-27 21:45 . update README.md.

2.0 更新计划

  • 修复已知bug
  • 增强稳定性
  • 新增存储过程支持

EFCore Extend Bulk Exec

博客地址

  • .Net Core
    • Core.Framework.EntityExtend
  • .Net Framework
    • Net.Framework.EntityExtend

介绍

  • 扩展EfCore,支持批量操作
  • 查询缓存 (MemoryCache)
  • 批量删除
  • 批量修改
  • 批量插入
  • 手工解析 Expression 效率高
  • 使用过程遇到问题请留言,谢谢

安装教程

  • 下载引入项目 拆包即用
  • 注意EFCore版本一致[根据项目自行切换]

使用说明

// 查询缓存 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作者:道法自然 地址)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/magey/EFCoreExtend.git
git@gitee.com:magey/EFCoreExtend.git
magey
EFCoreExtend
EFCore Extend Bulk Exec
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891