public async Task<List<InOutStorageTask>> GetLocationDetailListIdAsync(int storageAreaId, CancellationToken cancellationToken = default) { var InOutStorageState = await GetQueryableAsync(); var InOutStorageStateList = await InOutStorageState.Include(s => s.Details). Where(s => s.Details.Any(t => t.State==TaskState.NotStart||t.State==TaskState.Running)) .WhereIf(storageAreaId != 0,s=>s.StorageAreaId== storageAreaId) .ToListAsync( GetCancellationToken(cancellationToken)); return InOutStorageStateList; }
时间: 2024-04-24 17:22:25 浏览: 162
android中AsyncTask的用法
这是一个异步方法,其目的是根据指定的存储区域ID获取该区域内的出入库任务列表。其中,使用了Entity Framework的查询语法,通过异步调用GetQueryableAsync()方法获取InOutStorageTask的Queryable对象,然后通过Include方法将Details导航属性加载到查询结果中。
接着,使用Where方法筛选出状态为"未开始"或"运行中"的任务,然后使用WhereIf方法对筛选结果进行二次筛选,如果storageAreaId参数不等于0,则筛选出StorageAreaId等于该参数的任务。
最后使用ToListAsync方法将结果异步转换为List集合,并返回结果。如果需要取消此操作,则可以传入一个CancellationToken对象进行取消。
阅读全文