数据库执行功能(DataBaseVisitor)接口简介

RPA执行工具(IAgent)接口简介

这个工具类提供了数据库操作的基本方法。

此文档将提供以下功能接口说明:

avatar根据单个ID查找数据库数据

avatar根据多个ID查找数据库数据

avatar查找符合条件的第一条数据

avatar查找符合条件的所有数据

avatar插入单条数据

avatar批量插入数据

avatar更新单条数据

avatar批量更新数据

avatar根据单个ID删除数据

avatar根据多个ID批量删除数据

avatar删除数据

avatar批量删除数据

根据单个ID查找数据库数据

根据单个ID查找数据库数据

接口

async Task<T> Fetch<T>(int id, bool excludeRemoved = false) where T : IDataModel, new();

参数

id:单个主键id
excludeRemoved(可选):默认为false。数据库中存在一个对于当前运行脚本的状态字段,分别是待处理、处理中、处理完成、移除四种状态。excludeRemoved为true 时,不会查询出标记为移除状态的数据;excludeRemoved为false时,会查询出标记为移除的数据;

用法

// 主键id值
int RqInfoId = 1;
// 查找实体类RqInfo对应的数据表中主键RqInfoId为1的数据
var rqInfos = await this.DataBaseVisitor.Fetch<RqInfo>(RqInfoId); 

根据多个ID查找数据库数据

根据多个ID查找数据库数据

接口

async Task<IDictionary<int, T>> Fetch<T>(IEnumerable<int> ids, bool excludeRemoved = false) where T : IDataModel, new();

参数

ids:多个主键id
excludeRemoved(可选):默认为false。数据库中存在一个对于当前运行脚本的状态字段,分别是待处理、处理中、处理完成、移除四种状态。excludeRemoved为true 时,不会查询出标记为移除状态的数据;excludeRemoved为false时,会查询出标记为移除的数据;

用法

List<RqDetail> idList = new();
idList.Add(1);
idList.Add(2);
// 查找实体类RqInfo对应的数据表中主键RqInfoId为1和2的数据
var rqInfos = await this.DataBaseVisitor.Fetch<RqInfo>(idList); 

查找符合条件的第一条数据

查找符合条件的第一条数据

接口

async Task<T> FetchFirst<T>(JObject queryParams, bool excludeRemoved = false) where T:IDataModel, new();

参数

queryParams:查询参数
excludeRemoved(可选):默认为false。数据库中存在一个对于当前运行脚本的状态字段,分别是待处理、处理中、处理完成、移除四种状态。excludeRemoved为true 时,不会查询出标记为移除状态的数据;excludeRemoved为false时,会查询出标记为移除的数据;

用法

await this.DataBaseVisitor.FetchFirst<EnumData>(queryParams);

查找符合条件的所有数据

查找符合条件的所有数据

接口

async Task<List<T>> Fetch<T>(JObject queryParams, bool excludeRemoved = false) where T : IDataModel, new();

参数

queryParams:查询参数
excludeRemoved(可选):默认为false。数据库中存在一个对于当前运行脚本的状态字段,分别是待处理、处理中、处理完成、移除四种状态。excludeRemoved为true 时,不会查询出标记为移除状态的数据;excludeRemoved为false时,会查询出标记为移除的数据;

用法

   await this.DataBaseVisitor.FetchFirst<EnumData>(queryParams);

插入单条数据

插入单条数据

接口

async Task Insert<T>(T model) where T : IDataModel, new();

参数

model:实体对象

用法

// RqDetail为实体类,rqDetail为该实体类对象;
RqDetail rqDetail = new RqDetail();
......
// 插入单个对象成功后,会自动将对象数据库中的ID填充在这个对象身上;
await this.DataBaseVisitor.Insert<RqDetail>(rqDetail);

批量插入数据

批量插入数据

接口

async Task<IEnumerable<int>> Insert<T>(IEnumerable<T> models) where T : IDataModel, new();

参数

models:多个实体对象

用法

// RqDetail为实体类,rqDetail1、rqDetail2为该实体类对象;
RqDetail rqDetail1 = new RqDetail();
RqDetail rqDetail2 = new RqDetail();
......
List<RqDetail> insertList = new();
insertList.Add(rqDetail1);
insertList.Add(rqDetail2);
// 插入多个对象,不会自动将数据ID字段填充在数据身上, 而是返回所有插入的数据id信息;
await this.DataBaseVisitor.Insert<RqDetail>(insertList);

更新单条数据

更新单条数据

接口

async Task Update<T>(T model) where T : IDataModel, new();

参数

model:实体对象

用法

// RqDetail为实体类,rqDetail为该实体类对象;
RqDetail rqDetail = new RqDetai();
......
await this.DataBaseVisitor.Update<RqDetail>(rqDetail);

批量更新数据

批量更新数据

接口

async Task Update<T>(IEnumerable<T> models) where T : IDataModel, new();

参数

models:多个实体对象

用法

// RqDetail为实体类,rqDetail1、rqDetail2为该实体类对象;
RqDetail rqDetail1 = new RqDetail();
RqDetail rqDetail2 = new RqDetail();
......
List<RqDetail> insertList = new();
insertList.Add(rqDetail1);
insertList.Add(rqDetail2);
// 批量更新
await this.DataBaseVisitor.Update<RqDetail>(insertList);

根据单个ID删除数据

根据单个ID删除数据

接口

async Task Remove<T>(int id) where T : IDataModel, new();

参数

id:主键id

用法

// 数据的主键id值
int RqInfoId = 1;
// 删除实体类RqInfo对应的数据表中id为1的数据
await this.DataBaseVisitor.Remove<RqInfo>(id)

根据多个ID批量删除数据

根据多个ID批量删除数据

接口

async Task Remove<T>(IEnumerable<int> ids) where T : IDataModel, new();

参数

ids:多个主键id

用法

List<int> idlist = new List<int> { 1, 2, 3, 4, 5};
// 删除实体类RqInfo对应的数据表中id为1、2、3、4、5的数据
await this.DataBaseVisitor.Remove<RqInfo>(idlist)

删除单条数据

删除单条数据

接口

async Task Remove<T>(T model) where T : IDataModel, new();

参数

model:实体对象

用法

// RqDetail为实体类,rqDetail为该实体类对象;
RqDetail rqDetail = new RqDetail();
......
await this.DataBaseVisitor.Remove<RqInfo>(rqDetail)

批量删除数据

批量删除数据

接口

async Task Remove<T>(IEnumerable<T> models) where T : IDataModel, new();

参数

models:多个实体对象

用法

// RqDetail为实体类,rqDetail1、rqDetail2为该实体类对象;
RqDetail rqDetail1 = new RqDetail();
RqDetail rqDetail2 = new RqDetail();
......
List<RqDetail> insertList = new();
insertList.Add(rqDetail1);
insertList.Add(rqDetail2);
// 批量删除
await this.DataBaseVisitor.Remove<RqDetail>(insertList);