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 ...
随机推荐
- 敌兵布阵 HDU - 1166 - 单点修改,区间查询:树状数组/线段树
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...
- FFmpeg 命令行
FFmpeg命令行帮助 #>ffmpeg -h #>ffmpeg -h long #>ffmpeg -h full 将视频按照指定的宽高输出 #>ffmpeg -i input ...
- [2007年NOIP普及组] 奖学金
某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序, ...
- 操作系统 linux
- SQL server 清空数据库所有表
use [数据库名]GOdeclare @sql varchar(8000)while (select count(*) from sysobjects where type='U')>0beg ...
- linux 第一节(linux发展)
人间走一趟,天天奔向上. 开源: 1.使用自由 2.复制自由 3.传播自由 4.修改自由 5.创建衍生品自由 6.收费自由 1970年 UNIX 1979 AT&T 1984 gnu(开放源 ...
- SQL-建表注释
ddl 是对表结构的操作 create(创建)命令.alter(修改)命令.drop(删除)dml 是对表数据的操作 insert(插入)命令.update(更新)命令.delete(删除) alte ...
- CVPixelBufferRef
在iOS里,我们经常能看到 CVPixelBufferRef 这个类型,在Camera 采集返回的数据里得到一个CMSampleBufferRef,而每个CMSampleBufferRef里则包含一个 ...
- impdp,depdp 常用参数
转载于:https://www.cnblogs.com/halberd-lee/p/7807032.html 1 导数据注意事项 检查数据库版本(用于决定导出时生成为哪个版本的dmp头文件) sele ...
- Jetpack compose学习笔记之ConstraintLayout(布局)
一,简介 Jetpack compose中没有提供ConstraintLayout支持,所以需要添加下面的依赖来导入. // build.gradle implementation "and ...