protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
//每5分钟扫描一次
if (_lastScanTime.AddMinutes(5) > DateTime.Now)
{
await Task.Delay(10000, stoppingToken);
}
_lastScanTime = DateTime.Now; using (var unitOfWork = _unitOfWorkManager.Begin())
{
List<Log> techLogcationLogList = new List<Log>();
SvTech techInfo = new SvTech();
List<SvTech> techList = new List<SvTech>();
Log techLogcationLog = new Log();
Stopwatch watch = new Stopwatch();
watch.Start();
var LoginData = LoginSystemAsync().Result;//获取登录数据
if (LoginData.success == true)
{
var GpsData = GetTechLocationAsync(LoginData.id, LoginData.mds).Result;//获取定位数据
if (GpsData.success == true)
{ foreach (var item in GpsData.data)
{
foreach (var element in item.records)
{
Newtonsoft.Json.Linq.JArray location = (Newtonsoft.Json.Linq.JArray)element;
object[]? locationArr = location.ToObject<object[]>();
techInfo = _technicianRepository.GetAll().Where(s => s.gps_imei == locationArr[11].ToString()).FirstOrDefault();
if (techInfo != null)
{
techInfo.current_location = locationArr[2].ToString() + "," + locationArr[3].ToString();
techInfo.location_update_time = DateTime.Now;
techList.Add(techInfo); techLogcationLog.technician_id = techInfo.Id;
techLogcationLog.location = locationArr[2].ToString() + "," + locationArr[3].ToString();
techLogcationLog.update_datetime = DateTime.Now;
techLogcationLogList.Add(techLogcationLog);
}
}
}
}
else
{
//获取定位失败
}
}
else
{
//登录失败
}
if(techList.Count>0)
{
try
{
                 
_technicianLocationLogRepository.GetDbContext().BulkInsert(techLogcationLogList); //批量新增
_technicianRepository.GetDbContext().BulkUpdate(techList); //批量修改
watch.Stop();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
unitOfWork.Complete();
_lastScanTime = DateTime.Now; }
}
}

注意事项:需要在数据库链接字符串后面加上 AllowLoadLocalInfile=true

  "ConnectionStrings": {
"Default": "server=127.0.0.1;port=3306;user id=root;password=123456;database=test;AllowLoadLocalInfile=true"
},

否则会报如下错误

//错误提示  To use MySqlBulkLoader.Local=true, set AllowLoadLocalInfile=true in the connection string. See https://fl.vu/mysql-load-data”

abp框架+mysql 数据库 执行批量新增和修改的更多相关文章

  1. 基于abp框架的数据库种子数据初始化

    目录 基于abp框架的数据库种子数据初始化 1.背景 2.参照 3.解决方案 3.1 初始化数据 3.2 依赖注入方法容器里获取数据库上下文 3.3 封装创建初始化数据列表方法 3.4 数据库中没有的 ...

  2. MySQL数据库执行计划(简单版)

    +++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库执行计划简单版时间:2019年2月25日内容:MySQL数据库执行计划简单版重点:MySQL ...

  3. mysql数据库忘记密码时如何修改(一)

    方法/步骤 打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址 打开cmd命令提示符,进入上一步mysql.exe所在的文件夹. 输入命令  mysqld --skip-grant ...

  4. ABP——切换MySQL数据库

    我是一名.net新手,应公司要求开始学习.net,使用的是土耳其大牛写的框架ASP.NET Boilerplate 简称ABP,是基于DDD的现代ASP.NET开发框架,ABP提供了一个启动模板用于新 ...

  5. ABP 切换mysql 数据库报错mysqlexception: incorrect string value: ‘\xe7\xae\x80\xe4\xbd\x93…’ for column display name

    刚折腾了ABP框架,为了跨平台,将SQL Server数据库换成了MySQL数据库,ABP框架上支持多语言,中间被字符集折腾的够呛,翻了N个博客,最后终于在StackOverFlow 上找到了最终的解 ...

  6. python3使用pymysql模块,连接mysql数据库,实现新增、查询和更新操作

    1.环境数据准备: python3环境.pymysql模块 mysql数据库:本次代码中用到的数据库为本地的testdb数据库,user表(表字段比较简单,只有主键id,手机号mobile,密码pas ...

  7. Python连接MySQL数据库执行sql语句时的参数问题

    由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入 ...

  8. Python 连接Mysql数据库执行语句操作

    学习Mysql模块的使用,模块命名的坑,解决SHA加密错误无法连接

  9. 通用mapper版+SpringBoot+MyBatis框架+mysql数据库的整合

    转:https://blog.csdn.net/qq_35153200/article/details/79538440 开发环境: 开发工具:Intellij IDEA 2017.2.3 JDK : ...

  10. 【转】ABP使用Mysql数据库

    原文地址:https://www.cnblogs.com/LonelyCode/p/6477065.html 1.先安装Mysql的包,EntityFramework和Web项目都需要安装 2.修改W ...

随机推荐

  1. 实现分页数据请求的思路/Element UI(Plus)的分页模板(Vue3.x写法),(直接使用<script>引入vue.js)

    实现分页数据请求的思路/Element UI(Plus)的分页模板(Vue3.x写法),(直接使用<script>引入vue.js) 1. 效果图: 2.实现分页数据请求的思路:   分页 ...

  2. WPFGroupBox控件自定义

    先上效果图 直接上代码(直接在Window.Resources里面添加这段代码) <Style TargetType="GroupBox"> <Setter Pr ...

  3. ETL常用的三种工具介绍及对比Datastage,Informatica和Kettle

    https://blog.csdn.net/qq_34901049/article/details/103676959 大数据量下Informatica与Datastage的处理速度是比较快的,比较稳 ...

  4. el-dialog 嵌套子组件数据不刷新

    <!-- 展示通道测量值 -->     <el-dialog :title="analogTitle" :visible.sync="analogOp ...

  5. 2022-3-24内部群每日三题-清辉PMP

    1.敏捷团队成员认为每日站会并不会增加价值,是因为小组规模太大.在回顾会议上,他们提出将现有的项目团队分解成更小的小组.Scrum主管应该怎么做? A.缩小团队规模,使站会更易于管理. B.在采取行动 ...

  6. SEO高质量外链怎么做?

    其实seo是一个很枯燥的东西,说技术也没有什么技术可言 1.你需要每天坚持更新你的网站,坚持写软文 2.你需要每天发外链,而且有质量的外链 3.你需要每天交换友情链接来增加网站的权重名 4.你需要每天 ...

  7. C# IOC 个人理解

    学习QFramework 过程中发现对IOC不太了解,就大概百度了一下思路 将原先类与类之间的相互依赖关系,转移到第三方容器中, 同过读取配置文件来生成对应的依赖关系,将原本类之间的耦合转移到配置文件 ...

  8. vue解决点击事件冒泡 .stop

    vue解决点击事件冒泡  .stop <div @click="toCourse()" > <van-button type="primary" ...

  9. css如何实现(animation)跑马灯效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Web实时通信之SignalR

    前言 对于B/S模式的项目,基础的场景都是客户端发起请求,服务端返回响应结果就结束了一次连接:但在很多实际应用场景中,这种简单的请求和响应模式就显得很吃力,比如消息通知.监控看板信息自动刷新等实时通信 ...