abp框架+mysql 数据库 执行批量新增和修改
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 数据库 执行批量新增和修改的更多相关文章
- 基于abp框架的数据库种子数据初始化
目录 基于abp框架的数据库种子数据初始化 1.背景 2.参照 3.解决方案 3.1 初始化数据 3.2 依赖注入方法容器里获取数据库上下文 3.3 封装创建初始化数据列表方法 3.4 数据库中没有的 ...
- MySQL数据库执行计划(简单版)
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库执行计划简单版时间:2019年2月25日内容:MySQL数据库执行计划简单版重点:MySQL ...
- mysql数据库忘记密码时如何修改(一)
方法/步骤 打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址 打开cmd命令提示符,进入上一步mysql.exe所在的文件夹. 输入命令 mysqld --skip-grant ...
- ABP——切换MySQL数据库
我是一名.net新手,应公司要求开始学习.net,使用的是土耳其大牛写的框架ASP.NET Boilerplate 简称ABP,是基于DDD的现代ASP.NET开发框架,ABP提供了一个启动模板用于新 ...
- ABP 切换mysql 数据库报错mysqlexception: incorrect string value: ‘\xe7\xae\x80\xe4\xbd\x93…’ for column display name
刚折腾了ABP框架,为了跨平台,将SQL Server数据库换成了MySQL数据库,ABP框架上支持多语言,中间被字符集折腾的够呛,翻了N个博客,最后终于在StackOverFlow 上找到了最终的解 ...
- python3使用pymysql模块,连接mysql数据库,实现新增、查询和更新操作
1.环境数据准备: python3环境.pymysql模块 mysql数据库:本次代码中用到的数据库为本地的testdb数据库,user表(表字段比较简单,只有主键id,手机号mobile,密码pas ...
- Python连接MySQL数据库执行sql语句时的参数问题
由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入 ...
- Python 连接Mysql数据库执行语句操作
学习Mysql模块的使用,模块命名的坑,解决SHA加密错误无法连接
- 通用mapper版+SpringBoot+MyBatis框架+mysql数据库的整合
转:https://blog.csdn.net/qq_35153200/article/details/79538440 开发环境: 开发工具:Intellij IDEA 2017.2.3 JDK : ...
- 【转】ABP使用Mysql数据库
原文地址:https://www.cnblogs.com/LonelyCode/p/6477065.html 1.先安装Mysql的包,EntityFramework和Web项目都需要安装 2.修改W ...
随机推荐
- 洛谷P4571 [JSOI2009] 瓶子和燃料
题目 https://www.luogu.com.cn/problem/P4571 思路 首先观察并且简单模拟一下火星人取燃料的过程,发现最终燃料的量一定是他选的k个瓶子容量的线性组合(观察操作3就知 ...
- 实践:腾讯云COS备份本地数据以及异地备份
在当前大数据时代背景下,数据在业务中占有不可低估的地位,数据备份已然成为了最后一道屏障. 腾讯云对象存储COS,提供数据备份.共享.大数据处理.线上数据托管一站式解决方案,成为了不少企业和个人用户备份 ...
- 881. 救生艇 (Medium)
问题描述 881. 救生艇 (Medium) 给定数组 people . people[i] 表示第 i 个人的体重 , 船的数量不限,每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人 ...
- mysql ID起始值重置方法
方法一,执行SQL:truncate table `table_name`; 这种方法好处是运行速度超快 方法二,执行如下SQL: (还是假定表名是test)delete from `table_na ...
- 新版 Mediasoup Windows 安装 编译
https://vc.feiyefeihua.top/ ps:视频测试demo,服务器配置很低,加载有点慢:需要有音视频设备,不然会报错. 关于官网文档 官网文档地址 只测试了 Windows .讲的 ...
- svn批量忽略文件夹和批量忽略某种类型文件方法
批量忽略文件夹: 最简单的方法:不勾选这个 1.在svn管理的根目录下点击右键---> TortoiseSVN --> properties 2.点击new-->other 3.在p ...
- Visaul Studio 快捷方式
1.删除光标所在行:Ctrl + shift + L : 2.剪切光标所在行:Ctrl + X : 3.在光标上方插入一行:Ctrl + Enter : 4.注释代码:Ctrl + K --> ...
- IE浏览器a标签无法下载问题解决(IE浏览器a标签download属性不兼容问题解决)
//下载文件流函数,只支持get方法. export function downBlob(payload) { return new Promise(((resolve, reject) => ...
- python中,元组,列表,字典,字符串的相互转换
#author:RXS002 #1.字典 dict = {'name':'Zara','age':7,'class':'First'} #字典转换为字符串,返回:<type 'str'> ...
- ELK收集njinx
前提:安装elk 1.yum安装nginx 2.修改配置文件 vim /etc/nginx/nginx.conf.d 3.重新启动 nginx -s reload 4.安装压测命令 压测文件 5.写完 ...