对数据库操作时内置的方法

1.    Contains   确定wenJianID集合元素是否在id集合中。

例子:查询出List<string> wenJianID中所有的数据,list的集合中只有一个字段id

public async Task<List<WenJianXX>> GetListByWJIDList(List<string> wenJianID)
{
return await _devDbContext.WenJianXXes.Where(item => item.ZUOFEIBZ == 0 && wenJianID.Contains(item.ID)).ToListAsync();
}

2.    FromSql  执行sql语句。命名空间:Microsoft.EntityFrameworkCore  ,OracleParameter是替换sql语句中:ChuangJianR的方法  命名空间:Oracle.ManagedDataAccess.Client

public async Task<List<WenJianXX>> GetLBWenJianList(string tianJiaRID, int wenJianLB, string bingQuDM)
{
string strSql = "select ID, WENJIANLB, SUOSHUID, WENJIANLX, WENJIANMC, WENJIANDX, SHANGCHUANSJ, ZUOFEIBZ, LEVELID, SUOSHUMC, SUOZAIML, BINGQUDM, BINGQUMC, WENJIANML,HOUZHUILX from DMT_WENJIANXX where ZUOFEIBZ=0";
if (wenJianLB == 3)
{
strSql += " and ((WENJIANLB=3) or (WENJIANLB=1 and SUOSHUID=:ChuangJianR))";
return await _devDbContext.WenJianXXes.FromSql(strSql, new[] { new OracleParameter(":ChuangJianR", tianJiaRID) }).ToListAsync();
}
else
{
strSql += " and ((WENJIANLB=2 and BINGQUDM=:BingQuDM ) or (WENJIANLB=1 and SUOSHUID=:ChuangJianR))";
return await _devDbContext.WenJianXXes.FromSql(strSql, new[] { new OracleParameter(":BingQuDM", bingQuDM), new OracleParameter(":ChuangJianR", tianJiaRID) }).ToListAsync();
}

}

 

3.    ContinueWith  返回异步集合执行的延续。使用场景:new List<Task>()用作异步任务 和new List<ListDto>()用作执行查询,都需要获取异步返回的结果时     

        WhenAll 执行异步任务。使用场景:后面的操作需要异步任务返回的结果时使用~~~      

例子:

var tasks = new List<Task>(); 用作异步任务
var shouShuXXList = new List<ShouShuXXListDto>();用作后面的查询使用

 

bingQuDMs.ToList().ForEach(t => {
//初始化
tasks.Add(_shouShuXXService.GetShouShuXXList(t).ContinueWith(async p => {
shouShuXXList.AddRange(await p);ContinueWith是异步的延续操作,添加异步任务的同时把返回的结果添加到shouShuXXList中
}));
}));
});

 await Task.WhenAll(tasks);等待异步执行完成返回结果时再去执行下面的操作

·······

 

posted @ 2022-05-25 17:34  猴猴手记  阅读(38)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end