在默认仓储中,ABP提供了以下方法可供直接操作数据库:
-
GetAsync:通过lambda 表达式查询单个实体,如果存在多个满足条件的实体,则抛出 InvalidOperationException 异常。
-
FindAsync:通过lambda 表达式查询单个实体,如果存在多个满足条件的实体,则抛出 InvalidOperationException 异常。
-
InsertAsync:添加实体。
-
InsertManyAsync:批量添加。
-
UpdateAsync:更新实体。
-
UpdateManyAsync:批量修改。
-
DeleteAsync:删除实体,也可根据Lambda表达式删除。
-
DeleteManyAsync:批量删除。
-
GetListAsync:获取数据库中所有实体的列表。
-
GetPagedListAsync:分页获取实体集合。
-
GetCountAsync:获取数据库中所有实体的计数。
GetAsync方法和FindAsync方法的区别为:
如果实体未找到,GetAsync抛出 EntityNotFoundException 异常,而FindAsync方法返回 null
技巧:
所以,在关联子级查询时,只有GetAsync和FindAsync可以使用,FirstOrDefaultAsync()
和FirstAsyc不可以使用Include(),这时候又想判断是否为空,且抛出自定义得错误,
这时候只能用FindAsync(s=>s.Id==id,true);